【问题标题】:C#: Get WindowHandles of all windows by ProcessnameC#:通过 Processname 获取所有窗口的 WindowHandles
【发布时间】:2010-12-17 11:51:14
【问题描述】:

有一个有 5 个窗口的应用程序。 我有那个进程的 PID,我怎样才能得到那个进程的 all WindowHandles?

谢谢。

【问题讨论】:

标签: c# windows winapi forms


【解决方案1】:

获取 MainWindowHandle,然后在其上调用 EnumChildWindows

也许调用托管代码会比PInvoke更好,你可以在这里找到更多Managed Windows API

【讨论】:

    【解决方案2】:

    MSDN article 中描述的一些 PInvoke 内容开始。

    【讨论】:

      【解决方案3】:

      用户是这样的:

      Process[] processes = Process.GetProcesses(".");
      foreach (var process in processes)
      {
          var handle = process.MainWindowHandle;
      }
      

      【讨论】:

      • 好的。您可以遍历所有窗口并从 HWND 检索进程 ID,并将此进程 ID 与您感兴趣的 ID 匹配。查看 GetWindowThreadProcessId
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2011-08-14
      • 1970-01-01
      • 2011-01-19
      • 2013-05-09
      • 1970-01-01
      相关资源
      最近更新 更多