|
全置換ボタンにフォーカス移動するにはTabキーを何回も押す必要があって、さらに「あいまい検索」や「選択した範囲」などが灰色になってるとそこがスキップされることも計算しないといけなくて、ちょっと大変です。
とりあえずの作戦として、Shift+Tabキーを3回押せば、逆方向から「全置換」ボタンに移動できるので、その作戦がいいんじゃないかと思いました。秀丸メールの最新版だと「Bypass_keybd_event_raw」って関数が追加されてるので、それを使えば一応できると思います。
例:
if( (platform & 0x00080000) != 0 ) {
loaddll @"c:\program files\hidemarumail\tkinfo.dll";
} else {
loaddll @"c:\program files (x86)\hidemarumail\tkinfo.dll";
}
#n = dllfunc("Bypass_keybd_event_raw", 0x10, 0x2A, 0, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x09, 0x0F, 0, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x09, 0x0F, 2, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x09, 0x0F, 0, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x09, 0x0F, 2, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x09, 0x0F, 0, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x09, 0x0F, 2, 0 );
#n = dllfunc("Bypass_keybd_event_raw", 0x10, 0x2A, 2, 0 );
replacedialog "aaa", "bbb";
ちなみにC++言語で書くとこんな風になります。それを無理矢理秀丸マクロにした形です。
//VK_SHIFT 0x10
//VK_TAB 0x09
//VK_SHIFTのスキャンコード = 0x2A
//VK_TABのスキャンコード = 0x0F
//KEYEVENTF_KEYUP 0x0002
keybd_event( VK_SHIFT, 0x2A, 0, 0 );
keybd_event( VK_TAB, 0x0F, 0, 0 );
keybd_event( VK_TAB, 0x0F, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_TAB, 0x0F, 0, 0 );
keybd_event( VK_TAB, 0x0F, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_TAB, 0x0F, 0, 0 );
keybd_event( VK_TAB, 0x0F, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_SHIFT, 0x2A, KEYEVENTF_KEYUP, 0 );
田楽DLLを使って自前の置換ダイアログを作るとかって作戦もあるかもしれません。
|
|