ReasonMacroStarted関数(TKInfo.dll)(Ver5.78対応版)
 ReasonMacroStarted関数は、マクロがどのようにして起動されたのかを返します。具体的には、「マクロ・マクロ登録・自動起動」で登録されたマクロが起動されたのか、それとも普通にユーザー様のキーボード/マウス操作で起動されたのかを返します。

 類似した関数として、GetTransmitCommandCode関数もあります。
返り値(数値型)
 マクロが手動実行された場合は0を返します。
 マクロが自動実行された場合は、以下の値を返します。

 秀丸メール起動時の自動実行の場合:1
 秀丸メール終了時の自動実行の場合:2
 受信が一段落した時の自動実行の場合:3
 送信用のエディタ起動時、または、 テンプレートでのExecMacro命令によって起動された場合:4
 あとで送信/今すぐ送信の自動実行の場合:5
 送受信の開始直前の場合:6
 本体ウィンドウを開いた時:7
 本体ウィンドウを閉じる時:8
 アカウント切り替え時:9
 コマンドラインの/xオプションでマクロが起動された場合:10 (Version 5.70β9より)


備考
 自動起動されたマクロからexecmacro文によって起動されたマクロでも、自動実行の場合の値を返します。

 あとで送信なのか今すぐ送信なのかを区別するには、Bypass_GetWindowText関数を使った以下のような処理で判定してください。
$s = dllfuncstr("Bypass_GetWindowText", hidemaruhandle(0) );
if( leftstr( $s, 6 ) == "今すぐ" ) {
    message "今すぐ送信";
} else {
    message "あとで送信";
}


loaddll "tkinfo.dll";
if( dllfunc("ReasonMacroStarted") != 0 ) {
    message "自動実行されました。";
} else {
    message "手動実行されました。";
}

戻る