「外部のアプリケーション(=秀丸から起動していないアプリケーション)」から、
「今開いている秀丸」の「アウトプット枠」へと直接出力するためのプラグインです。
もしも、アウトプット枠を閉じている場合でも、「外部アプリケーションからのメッセージ転送を検知すると」
自動的にアウトプット枠を表示します。
いずれも問題なく処理されます。
#dllsop = loaddll( hidemarudir + "\\HmSharedOutputPane.dll"); // HmSharedOutputPane.dllの読み込み。フォルダを変更する場合には指定変更のこと。 if(#dllsop) { #_ = dllfunc( #dllsop, "SetHidemaruHandle", hidemaruhandle(0) ); // 現在の秀丸ウィンドウハンドルの伝達 #_ = dllfunc( #dllsop, "SetWithClearTime", -1 ); // 新しいOutput枠を出す際に、前回のOutputから何ミリ秒経過するとクリアするか } else { message("HmSharedOutputPane.dllが導入されていません。"); } // ★ #dllsopをマクロ内で手動でfreedllしてはならない!! 秀丸が閉じられるとfreedllされます。
「SetWithClearTime」が微妙に説明がわかりにくいですが、こういうことです。
一行は1024バイトまでです。
厳密には文字列として使用可能なのは1023バイトです。
行のバッファは5000行です。
このバッファーとは、文字列を受信しているが、まだアウトプット枠に表示していない行数となります。
よって、あまりにも送信速度が速すぎる場合には、破たんしてしまうこととなります。(過去のバッファーは無かったことになる)
ものすごい大量の文字列と行数を、秀丸へと継続的に「送信し続ける場合」には、
秀丸のアウトプットへの掃きが付いていけるように、送信側で「Sleep」を入れなど、送信速度をコントロールしてください。
普通のマクロでは決して実現不可能な独自の仕組みを採用しているため、
アウトプット枠へのデータ受信中であっても
など普段の操作の全ては受付可能です。
HmSharedOutputPane.macは自由に利用してください。特にライセンスはありません。
これらのバイナリ、およびソースは、MITライセンスです。
ソースはGithubに上がっています。