メール内容枠の最大化No.11226
hirn さん 23/04/20 17:41
 
 「メール内容枠の最大化」しているかをマクロで調べる方法があれば教えてくださ
い。

 よろしくお願いします。

[ ]
RE:11226 メール内容枠の最大化No.11230
秀まるお2 さん 23/04/21 14:44
 
 メニューのチェックマークが入ってるかどうか調べる作戦があります。

    loaddll "tkinfo.dll";
    #check = dllfunc("GetCurrentMenuCheckState", 40051);
    message str(#check);

 で一応分かるようですが、ただ、メニューバー非表示にしてたりダークモードだと
ダメです。(エラーになって結果が-1になる)

 メニューバー非表示またはダークモードでもちゃんと動くようには、次のβ版で対
応しようと思います。

 他の作戦としては・・・かなり無理矢理ですが、メール内容枠のウィンドウの高さ
と本体ウィンドウの中身の高さを比較して判定するロジックも可能です。サンプルマ
クロ以下のようになります。

    loaddll "tkinfo.dll";
    #main = dllfunc("MainWnd");
    #cyMain = dllfunc("Bypass_GetClientSize", #main) / 0x10000;
    //message str(#cyMain);
    #prev = 0;
    while(1) {
        #view = dllfunc("Bypass_FindWindowEx", #main, #prev, "#32770", 0);
        if( #view == 0 ) {
            message "ウィンドウ見つからず";
            endmacro;
        }
        #hidemaru = dllfunc("Bypass_FindWindowEx", #view, 0, "Hidemaru32Clas
s", 0);
        if( #hidemaru != 0 ) {
            break;
        }
        #prev = #view;
    }
    #cyView = dllfunc("Bypass_GetWindowSize", #view) / 0x10000;
    if( #cyView > #cyMain * 8 / 10 ) {
        message "メール内容枠最大化";
    } else {
        message "メール内容枠最大化してない";
    }

[ ]
RE:11230 メール内容枠の最大化No.11265
hirn さん 23/04/29 22:14
 
 どうもありがとうございました。

 GetCurrentMenuCheckState を利用させていただきます。

[ ]