裏技による任意コマンド実行(Ver7.33対応版)
tkinfo.dll側に用意されてない秀丸メールのコマンドをマクロから実行したい場合は、秀丸メールのウィンドウにsendmessage関数を使ってWM_COMMANDを送ってやる方法が使えます。
WM_COMMANDの値は0x0111です。
送り先ウィンドウは、hidemaruhandle(0)です。
たとえば「すべて選択」をマクロから実行させたい場合、「すべて選択」コマンドのコマンドコードは40008であり、
#n = sendmessage( hidemaruhandle(0), 0x0111, 40008, 0);
とすればそれで「すべて選択」が実行できます。(ただし、「すべて選択」コマンドは、メール内容枠がアクティブの時はメール内容のテキストをすべて選択する動作になるので、メールをすべて選択するには
SelectAllMail関数を使います。)
各コマンドのコマンドコードの値は、「マクロ・マクロ登録...」の「コマンド置き換え」ページの中にあるコマンドの番号を調べる▼」ボタンを押せば調べることが出来ます。
たとえば以下のようになっています。
引用付きコピー | 40007 |
すべて選択 | 40008 |
秀丸メールのバージョン情報 | 40018 |
アカウントの削除 | 40025 |
フォルダの削除 | 40027 |
すべてのゴミ箱を空にする | 40036 |
現在アカウントのゴミ箱を空にする | 40037 |
メール内容枠の最大化 | 40051 |
メール一覧枠の最大化 | 40120 |
そもそもこのやり方は裏技であり、sendmessageで確実に使えることの保証はありません。動作に不審な点があったら、そのコマンドについてはこの裏技でのやり方は使わないでください。
sendmessageでコマンド実行するよりも、
Bypass_PostMessageを使った方が確実にコマンド実行できる可能性が高いです。詳しくはそちらのヘルプを参照ください。