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でゴーストが喋るはず。