|
いつもお世話になっております.スペルチェックアドインがWindowsの機能を使える
ようになったので,最近はそちらの機能を使っています.その件はありがとうござい
ました.
スペルチェックの言語をマクロから切り替えることはできないかと思い質問させてい
ただいています.Aspell利用時は末尾のようなマクロを使っていましたが,Windows
標準の機能を使っていると動かないようです.同種のことができるようになると大変
ありがたいのですが,可能でしょうか.
ちなみに末尾のマクロも同じようなことを聞かせていただき教えていただいたものか
と思います.コメントにのこしてあったリンクは切れているようですが.
なお,利用中の環境は
* Windows 11
* 秀丸64bit version 9.19
* スペルチェックアドイン 2.03
です.
---------
// http://www.maruo.co.jp/hidesoft/2/x35012_.html
$langname[#langcount] = "英語-米国(&U)";$langcode[#langcount] = "656E5553";#
langcount = #langcount + 1;
$langname[#langcount] = "英語-英国(&G)";$langcode[#langcount] = "656E4742";#
langcount = #langcount + 1;
$langname[#langcount] = "英語-カナダ(&C)";$langcode[#langcount] = "656E4341
";#langcount = #langcount + 1;
$langname[#langcount] = "フランス語-フランス(&F)";$langcode[#langcount] = "6
6724652";#langcount = #langcount + 1;
$langname[#langcount] = "フランス語-スイス(&S)";$langcode[#langcount] = "667
24348";#langcount = #langcount + 1;
$langname[#langcount] = "ドイツ語-ドイツ(&D)";$langcode[#langcount] = "64654
445";#langcount = #langcount + 1;
$langname[#langcount] = "ドイツ語-スイス(&D)";$langcode[#langcount] = "64654
348";#langcount = #langcount + 1;
$langname[#langcount] = "スペイン語(&E)";$langcode[#langcount] = "65730000";
#langcount = #langcount + 1;
$langname[#langcount] = "イタリア語(&I)";$langcode[#langcount] = "69740000";
#langcount = #langcount + 1;
if((platform & 0x00800000) == 0){
if((configstate & 0x01) != 0){
message "一時的な設定になっているため設定を変更できません。";
endmacro;
}
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\" + filetype;
$config = getregstr("");
closereg;
if($config != "")$configset="Config\\"+$config;
else $configset = "Default";
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\" + $configset;
$s = getregbinary("ExConfig2",20,4);
$lang = leftstr($s,8);
}else{
openreg "CURRENTUSER", "SOFTWARE\\Hidemaruo\\TuruKame\\Config";
$s = getregbinary("SpellCheckDetail",0,4);
$lang = leftstr($s,8);
}
#i = 0;
$menu[0] = "スペルチェックの言語";
$menu[1] = "\x01";
while(#i < #langcount){
if($langcode[#i] == $lang)$menu[#i+2] = "●" + $langname[#i];
else $menu[#i+2] = " " + $langname[#i];
#i = #i + 1;
}
while(true){
menuarray $menu, #langcount + 2;
#result = result;
if(#result == 0){
closereg;
endmacro;
}
#lang = #result - 3;
if(#lang >= 0)break;
}
$s = $langcode[#lang] + midstr($s, 8);
if((platform & 0x00800000) == 0){
writeregbinary "ExConfig2",$s,20,1;
closereg;
envchanged;
}else{
writeregbinary "SpellCheckDetail",$s,0,1;
closereg;
loaddll "tkinfo.dll";
#h = hidemaruhandle(0);
#main = dllfunc("MainWnd2");
#hidden = (dllfunc("Bypass_IsWindowVisible",#main) == 0);
if(#hidden)##_ = sendmessage(#main, 0x112, 0xF120, 0); //WM_SYSCOMMAND, SC_
RESTORE
if(#h != #main)setactivehidemaru #main;
##_ = dllfunc("EnvChanged",0);
if(#h != #main)setactivehidemaru #h;
if(#hidden)##_ = dllfunc("Bypass_ShowWindow",#main,0);
freedll;
}
endmacro;
|
|