.NET(C#):只有进程句柄或PID时才获得子窗口?
一种特殊情况的问题:
- 我开始一个过程
System.Diagnostics.Process.Start(..)
- 该过程将打开一个初始屏幕-该初始屏幕成为主窗口。
- 初始屏幕关闭,并显示“真实” UI。现在,主窗口(启动屏幕)无效。
- 我仍然具有Process对象,并且可以查询其句柄,模块等。但是主窗口句柄现在无效。
此时,我需要获取流程的UI(或UI句柄)。假设我无法更改流程的行为以使其变得更容易(或更明智)。
我在网上环顾四周,但我承认我待了一个多小时。似乎应该有点琐碎:-(
回答:
如果您不介意使用Windows API,则可以使用EnumWindowsProc
,然后检查使用的每个句柄GetWindowThreadProcessId
(以查看它是否在您的过程中),然后再检查IsWindowVisible
,GetWindowCaption
并GetWindowTextLength
确定hWnd
过程中哪个是那个你要。
尽管如果您在使用该方法之前没有使用过这些功能会感到很痛苦,那么希望有一种更简单的方法。
以上是 .NET(C#):只有进程句柄或PID时才获得子窗口? 的全部内容, 来源链接: utcz.com/qa/416178.html