Hatena::ブログ(Diary)

要するに雑記。 このページをアンテナに追加 RSSフィード

2006-04-10 まっくろくろすけ

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

sukinosukino 2006/04/11 02:23 ひぇぇありがとうございます見事に動いてますー(((;゜Д゜))))

ukiyaukiya 2006/04/13 09:36 お役に立てれば幸いですー。
実はHwnd無しでDSSTPを送りつけるという反則をしています。
ちょっとリスクありです。(何かを壊すようなことはまず無いですが)