TeraPad

id:sukino:20060409

試しにTeraPadでもActiveX経由で「選択範囲をDSSTP送信」してみました。
ただ、TeraPadって全く使ってないので何か起きてもサポートできないかも…
とりあえずまあサンプルとして。


TeraPadはそれ単体ではマクロ機能が無いようですので、
とりあえずDoMacroというのを見つけたので、それを使います。


DoMacroを解凍して、DoMacro登録.batを実行して、TeraPadを立ち上げた状態で
DoMacro.dllをMakeDoMacroIni.vbsにドラッグ&ドロップすればインストール完了。


そうしたら、次のような内容のファイルを、例えば dsstp4tp.js という名前で
どこかに保存し、TeraPad側で「ツールの設定」でツール登録してあげます。
設定のオプションとかはデフォでいいです。ショートカットをF1キーとかに設定したとします。

var dsstpobj = new ActiveXObject( "DSSTPSEND.DSSTPSendCtrl.1" );
var TP = new ActiveXObject("DoMacro.TeraPad");
script=TP.GetSelText();
script=script.replace(/\n/g,"");
script=script.replace(/\r/g,"");
dsstpobj.Script=script;
dsstpobj.IfGhost="";//特定のゴーストに送りたい場合はここを変更
/*
//SSTP-ViewerはHWndが0の場合弾いてしまうようなので、無理やり使う場合は
//このコメントを外す(但し反則なので何か起きるかも)
dsstpobj.ExLine="SEND SSTP/1.4\r\n"+
"Charset: Shift_JIS\r\n"+
"Sender: DSSTPSend ActiveX Control\r\n"+
"Script: "+script+"\r\n"+
//"IfGhost: \r\n"+
"Option: notranslate\r\n"+
"SecurityLevel: external\r\n"+
"HWnd: -1\r\n";
*/
dsstpobj.Send(false);//trueにするとおかしなことになるので注意!!

そうしたらあとは、TeraPadで文字列を選択してF1キーを押せば、
DSSTPでゴーストが喋るはず。