|
kendo さん今日は、ひろです。
> >ispell という CUI ソフトウェアと連携するマクロを自作して使っています。
> >必要な方がいらっしゃれば書き込みます。
> このマクロ、ぜひ拝見したいです。
//-------------------------------------------------------------------------
if(filename == ""){
loaddll "tkinfo.dll";
if(!result){
message "ファイルを保存してから実行してください";
goto End;
}
if(dllfunc("IsTuruKame")){
goto TuruKame;
}
}
else goto Hidemaru;
TuruKame:
##main = dllfunc("MainWnd");
if(##main == 0){
##open = 1;
##handle = hidemaruhandle(0);
if(dllfunc("IsTrayIcon")){
##main=sendmessage(findwindowclass("TuruKameFrame"),0x0112,0xF120,0);
setactivehidemaru ##handle;
##main = dllfunc("MainWnd");
}
else{
message "本体が起動していないと、実行できません。";
goto End;
}
}
$$account = dllfuncstr("ExecAt",##main,"CurrentAccount");
$$folder = dllfuncstr("ExecAt",##main,"CurrentFolder");
##mailType = dllfunc("MailType");
if(##mailType != 0 && ##mailType != 5){
message "「草稿」「未送信」に保存された送信メールしか実行できません";
goto End;
}
if(!readonly)execmacro macrodir + "\\turukame\\OverWrite.mac";
loaddll "tkinfo.dll";
$$draftAccount = dllfuncstr("CurrentAccount");
$$draftFolder = dllfuncstr("CurrentFolder");
if($$draftFolder != "草稿" && $$draftFolder != "未送信"){
message "送信メールしか実行できません";
goto End;
}
##handle = hidemaruhandle(0);
$fileName = dllfuncstr("MailFilePath");
if(##handle != ##main){
if(!dllfunc("Sync"))goto Error;
}
else{
message "エディタ・ウィンドでしか動作しません。";
goto End;
}
if(!dllfunc("SetMainWndTop"))goto Error;
closehidemaru ##handle;
if(!dllfunc("ExecAt",##main,"SelectFolder",$$account,""))goto Error;
runsync2 "ispell -L20 -M -j -de:/usr/local/share/ispell/US-xlg.hash -x \""
+ $fileName + "\"";
if(!dllfunc("ExecAt",##main,"RemakeList",$$draftAccount,$$draftFolder))
goto Error;
if(!dllfunc("ExecAt",##main,"SelectFolder",$$draftAccount,$$draftFolder))
goto Error;
if(!dllfunc("OpenMail"))goto Error;
if(!dllfunc("ExecAt",##main,"SelectFolder",$$account,$$folder))goto Error;
if(##open)##tmp = dllfunc("ExecAt",##main,"Exit");
goto End;
Error:
message "DLL error";
End:
freedll;
endmacro;
Hidemaru:
freedll;
if(!readonly)save;
if((charset & 64) & (!(charset & 128)))##lf = 1;
##charset = charset & 63;
if(##charset == 2 || ##charset == 5 || ##charset == 6){
message "非対応文字コードです";
endmacro;
}
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
##Timestamp = getregnum("Timestamp");
##Sharing = getregnum("Sharing");
##DupOpen = getregnum("DupOpen");
writeregnum "Sharing",0;
writeregnum "DupOpen",0;
writeregnum "Timestamp",0;
closereg;
envchanged;
reopen;
runsync2 "ispell -L20 -M -j -de:/usr/local/share/ispell/US-xlg.hash \""
+ filename2 + "\"";
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "Sharing",##Sharing;
writeregnum "DupOpen",##DupOpen;
writeregnum "Timestamp",##Timestamp;
closereg;
envchanged;
reopen;
if(!##lf){
if(##charset == 1)saveas filename2, sjis;
else if(##charset == 3)saveas filename2, euc;
else if(##charset == 4)saveas filename2, jis;
}
endmacro;
//-----------------------------------------------------------------------------
というマクロです。
> 以前(そしていまもときどき)VZエディタでMicroSPELL 1.0Jというプログラム
私も以前まで使っていましたが、ロングファイルネームが使えないので、
こちらに変えました。
なお ispell は色々なところに転がっていますが、
http://www.fsci.fuk.kindai.ac.jp/aftp/pub/ptex/utils/ispell-3.1.20-w32.tar.gz
を使っています。
|
|