|
ひろさん 今日は
先日読み込みを読んでいたら、ispellを鶴亀+秀丸でつかうひろさんの以下のマクロ
が目に入り、これだと思って早速以下のようにいたしました。
(1) ispell-3.1.20.w32.tar.gzをdownloadして解凍、spell.exeを秀丸と同じディレ
クトリ(c:\Program Files\Hidemaru)に、4つのdictionaryをreadme.w32の指示通りd
efaultのc:\user\local\libにそれぞれコピー
(2) 以下の書き込みの//----後と最後の//----の間をcut and pasteしてispell.mac
として秀丸マクロのディレクトリ(c:\Program Files\Hidemaru\macros)に保存
(3) ご指示通り、tkhlp115.lzhをdownloadして、それからOverWrite.macを秀丸マク
ロディレクトリ(c:\Program Files\Hidemaru\macros)に保存
(4) 秀丸でマクロとしてispell.macを登録。
としていざ秀丸と鶴亀でスペルチェックをしようとすると、
Ispell.mac(24):式がおかしいです
とでてしまいます。秀丸は3.08, 鶴亀は1.40, Win2000です。ご指導いただければ幸
いです。念のため私のコピーしたひろさんの書き込みの部分を転記します。
//-------------------------------------------------------------------
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 \""
//↑この行は ispell.exe や辞書の置き場所により変更が必要
+ $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 \""
//↑この行は ispell.exe や辞書の置き場所により変更が必要
+ 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;
//-------------------------------------------------------------------
|
|