2015-07-11 241 views
-1

如何仅使用PID列出进程的所有子进程和窗口的所有句柄?例如,我需要隐藏窗口,最小化窗口,按钮,文本框,组框,选项卡控件等(基本上都是)的控制柄。我所拥有的是开始的过程的PID。获取VB.NET中PID进程的所有子窗口的句柄

谢谢!

+2

创造性地结合以下成分:[EnumWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497.aspx),[GetWindowThreadProcessId](https://msdn.microsoft。 com/en-us/library/windows/desktop/ms633522.aspx)和[EnumChildWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633494.aspx)。 – IInspectable

+1

或者避免使用P/Invoking,然后使用现代技术[Microsoft UI Automation](https://msdn.microsoft.com/en-us/library/ms747327%28v=vs.110%29.aspx) – ElektroStudios

回答

0

解决了这个与一些谷歌搜索技巧:)

  1. 使用EnumWindows的枚举所有顶级窗口
  2. 传递窗口句柄GetWindowThreadProcessId获得业主进程ID
  3. 下检查
  4. 相比具有PID过程
  5. 如果PID匹配使用EnumChildWindows
  6. 添加SendMessage以获取任何Text和GetClassName以显示类

谢谢大家!