2015-07-11 237 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以顯示類

謝謝大家!