1

このコードを使用してウィンドウ ハンドルを取得します。

var h: THandle;
...
h := FindWindow('MozillaWindowClass', NIL);

h は有効です (> 0)。

このウィンドウに子ウィンドウがあるかどうかを調べるにはどうすればよいですか?

クラス名が必要なため、FindWindowEx() は使用できません。

ここで達成したいことは、MozillaWindowClass ウィンドウが Thunderbird に属しているか、Firefox に属しているかを調べることです。Thunderbird には子のない MozillaWindowClass があるように見えますが、Firefox にはありません。(私のコードは Windows 2000 でも実行する必要があるため、CreateToolhelp32Snapshot() を使用してプロセス名を調べることはできません)。

4

1 に答える 1

6

ウィンドウに子があるかどうかを判断する最も簡単な方法は、GetWindowpassingを呼び出すことGW_CHILDです。

function HasChildren(Window: HWND): Boolean;
begin
  Result := GetWindow(Window, GW_CHILD)<>0;
end;
于 2013-02-12T19:17:53.553 に答える