0

在 C# 中,我想获取特定程序的所有活动窗口句柄。

例如,我想获取 Outlook 客户端和所有 Outlook 打开的邮件窗口。可能会打开 2/3/etc 邮件窗口。我不能使用活动窗口标题来获得某种关系,因为它可能完全不同。

我可以使用 EnumWindows、IsWindowVisible 来获取所有打开的窗口的列表。子窗口或窗口组(即与 Outlook 相关的所有窗口、与 Skype 相关的所有窗口等)之间是否存在任何关系?

谢谢。

4

1 回答 1

0

在这种情况下,您需要使用 WinAPI。
首先,每个窗口都与一个所有者进程相关联 - 使用 GetWindowThreadProcessId。
其次,所有窗口都有父/子关系——使用 EnumChildWindows 和 GetParent。

于 2013-02-12T07:46:30.863 回答