c++ - FindWindow() 通过不完整的名称

标签 c++ winapi findwindow

有没有办法通过不完整的名称找到窗口?

例如,您如何找到可以有多个标题名称的 Google Chrome 窗口?
Stack Overflow - Google Chrome

如果窗口始终与函数同名,那么 FindWindow 函数会很好地工作,如下面的函数将解决它。

HWND chrome = FindWindow(NULL,_T("Stack Overflow - Google Chrome"));
SetForegroundWindow(chrome);

但是,如果名称不断变化(如浏览器)会怎样?如何通过搜索固定的开始/结束来找到窗口?

我正在寻找类似 FindWindow(NULL,_T("something here - Google Chrome") 的东西。
有什么办法吗?

最佳答案

您可以使用窗口类名代替窗口标题。例如,您可以使用

找到 Firefox
HWND firefox = FindWindow(_T("MozillaWindowClass"), NULL);

您可以使用任何窗口 spy 类型的应用程序,例如 WinSight、WinSpy++ 或(我用来查找 Firefox 窗口类的那个)AutoHotkey 的窗口 spy 实用程序。

有关详细信息,请参阅 FindWindow 的 MSDN 文档.

关于c++ - FindWindow() 通过不完整的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435704/

相关文章:

java - JNA .FindWindow 与正则表达式

c++ - FindWindow 不工作?

c++ - 如何动态分配单个 int[10] 对象?

c++ - 超过 vector 不会导致段错误

c++ - 如何将 t[i][j] 转换为指针样式引用

c - PostQuitMessage() 不会关闭我的应用程序?

c++ - 在 C++ 中使用非成员方法

c# - 我怎样才能调整窗口工作区的大小,然后更新其他窗口以反射(reflect)更改?

winapi - 如何调用和使用 UnregisterClass?

c# - 从控制台窗口(C++ 应用程序)重定向到文本框(C# 应用程序)