我正在构建一个给另一个应用程序mainWindowhandle的应用程序,它收集有关窗口状态的信息。收集有关子窗口的信息没有问题,但是我无法访问应用程序的其他打开的窗口甚至菜单。有没有办法获取应用程序的所有窗口句柄?
您可以执行Process.MainWindowHandle似乎做的事情:使用P / Invoke调用该EnumWindows函数,该函数为系统中的每个顶级窗口调用一个回调方法。
Process.MainWindowHandle
EnumWindows
在回调中,调用GetWindowThreadProcessId,并将窗口的进程ID与进行比较Process.Id。如果进程ID匹配,则将窗口句柄添加到列表中。
GetWindowThreadProcessId
Process.Id