如何找到包含 X 的 window 的 PID

How to find PID of window containing X

我可以使用FindWindow,但window的名称每次打开都会改变。所以我的问题是,我怎样才能:

A​​) 找到包含 'x'

的 window 的 PID

B) 用exe文件名找到PID a window?

抱歉,如果这个问题很明显,是 C++ 的新手。提前致谢!

  1. 尝试使用EnumWindows获取所有windows句柄
  2. 通过IsWindowVisible. Because some invisible windows can hang the call to GetWindowText
  3. 检查windows句柄的状态
  4. 通过GetWindowText获取每个windows的标题。然后检查标题包含'X'你想要的字符或字符串。
  5. 通过 GetWindowThreadProcessId
  6. 获取它的 pid

关于B/,可以通过其windows句柄GetWindowModuleFileName获取可执行文件名