|
kendo さん今日は、ひろです。
> ちょっと困るのは返事を書く場合です。このときは
> ふつうはどうしても「鶴亀」から「秀丸」へ という流れで作業に入ります
確かにそうですね。
> > 鶴亀と秀丸の編集を一つでしかやらないという前提なら、ハンドル番号を
> INI ファイルに書き込んでおくなどすれば出来るかもしれません。
>
> とお書きになっていらっしゃいますが、これはどんな操作なのでしょうか。
一応コメントに簡単に、処理内容を書いたマクロを、末尾に記載しておきます。
P.S 例外処理を入れる等編集していただいて、何方かライブラリに登録し
て頂いて構いません。→All
私自身はこの様な使い方をしないので、今後のメンテナンスを考えると、
おそらく登録しないと思います(^^)。
//秀丸・鶴亀連携マクロ
openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
$TuruKameDir = getregstr("TuruKameDir");
closereg;
//こうして鶴亀のインストールフォルダの指定で、秀丸からの DLL の読み込みが出来る
loaddll $TuruKameDir + "tkinfo.dll";
$mailtmp = dllfuncstr("ToLower",getenv( "TEMP" ) + "\\mail.tmp");
$ini = macrodir + "\\HideTuruMail.ini";
if( dllfunc("IsTuruKame") )call Turu2Hide;
else{
if( filename == $mailtmp ){
if( getininum($ini,"Mail","handle") )call Hide2Turu;
else call NewMail;
}
else call NewMail;
}
freedll;
exit;
NewMail:
gofiletop;
saveas $mailtmp;
##reg_search=searchmode;
$$search=searchbuffer;
##search=searchoption;
searchdown "^\\n",regular;
if( !result )$$param = "BodyFile=\"" + filename2 + "\"";
else{
searchup "^([^A-Za-z-]+:.*|[^:]+)$",regular;
if( result )$$param = "BodyFile=\"" + filename2 + "\"";
else $$param = "File=\"" + filename2 + "\"";
}
setsearch $$search, ##search;
loadfile "";
run "\"" + $TuruKameDir + "TuruKame.exe\" newmail " + $$param;
return;
Turu2Hide://鶴亀→秀丸
##handle = getininum($ini,"Mail","handle");
if( hidemaruorder(##handle) == -1 || ##handle == 0){
//保存されたハンドルがない場合→即ち秀丸から起動されて訳ではない
disabledraw;
##org = dllfunc("HeaderView");
#tmp = dllfunc("SwitchHeaderView",2);
saveas $mailtmp;
//秀丸から呼ばれたときのために、ハンドルを記録しておく
writeininum $ini,"Mail","handle",hidemaruhandle(0);
//秀丸で編集したファイルを書き込むので、全て削除
selectall;
delete;
//ヘッダの表示状態を元に戻す
#tmp = dllfunc("SwitchHeaderView",##org);
run "\"" + hidemarudir + "\\hidemaru.exe\" \"" + $mailtmp + "\"";
}
else{
//保存されたハンドルがある場合→即ち秀丸から起動された
//秀丸→鶴亀処理の最終段階
//記録されているハンドルのウィンドウに切り替え
setactivehidemaru ##handle;
insertfile $mailtmp;
moveto 0,-9999;
writeininum $ini,"Mail","handle",0;//一旦切り替えたので、0 を書き込む
//→今度同じマクロを起動しても、このブロックには入らない
}
freedll;
endmacro;
Hide2Turu://秀丸→鶴亀
save;
run "\"" + $TuruKameDir + "turukame.exe\" /x " + currentmacrobasename;
return;
|
|