【お知恵拝借願い】受信完了メッセージでNo.06971
dszhm さん 20/07/20 15:06
 
環境は
Windows 10 Pro 1903 18362.836 64 bit
エディタ:8.91 Float 64 bit
メール:6.94Beta28 64 bit
です。

受信完了時に
キャプション:受信の通知
テキスト:n通のメールを受信しました。
というメッセージが表示されます。
これは、
メニューから「設定(O)」「全般的な設定(E)」の
「設定の一覧(L)」中の「送受信」を選択した時の
「何か受信したときにメッセージを表示する(V)」
のチェックを入れた時に表示されるメッセージだと思うのですが、
このメッセージで、「OK」と「キャンセル」で自動実行マクロの挙動を変えたいので
す。

よろしくお願いします。

[ ]
RE:06971 【お知恵拝借願い】受信完了メッNo.06974
秀まるお2 さん 20/07/20 17:10
 
 そこのOKキャンセルボタンの違いですが、OKボタンを押せば秀丸メール本体ウィン
ドウが表に出てきて、キャンセルボタンを押せばウィンドウが出てこない、というだ
けのつもりです。

 「受信が一段落した時」のマクロは必ず実行されてしまうのですが、とりあえず、
OKを押したのかキャンセルを押したのかどうかを、秀丸メール本体ウィンドウが表に
出ていてアクティブになってるかどうかで判断できると思います。

 サンプルマクロとしては、例えばこんな風になります。

    loaddll "tkinfo.dll";
    #foreground = dllfunc("Bypass_GetForegroundWindow");
    #turukame = dllfunc("MainWnd");
    if( #turukame != 0 && #foreground == #turukame ) {
        message "秀丸メール本体ウィンドウがアクティブです。";
    } else {
        message "秀丸メール本体ウィンドウはインアクティブ、または常駐のみの
状態です。";
    }

 OKボタンを押した場合は「アクティブです」が表示されると思います。

 そういう判定を使う作戦でどうでしょうか。

[ ]
RE:06974 【お知恵拝借願い】受信完了メッNo.06977
dszhm さん 20/07/22 14:36
 
> サンプルマクロとしては、例えばこんな風になります。
>
>    loaddll "tkinfo.dll";
>    #foreground = dllfunc("Bypass_GetForegroundWindow");
>    #turukame = dllfunc("MainWnd");
>    if( #turukame != 0 && #foreground == #turukame ) {
>        message "秀丸メール本体ウィンドウがアクティブです。";
>    } else {
>        message "秀丸メール本体ウィンドウはインアクティブ、または常駐のみの
>状態です。";
>    }
>
> OKボタンを押した場合は「アクティブです」が表示されると思います。
>
> そういう判定を使う作戦でどうでしょうか。

ご教示の方法で思うような切り分けができるようになりました。
ありがとうございました。

[ ]