window class 名称是否在 win32api 中更改

Does the window class name change in win32api

您在 lpszClassName 中指定的 window class 名称是否会更改?例如对于像 firefox 这样的应用程序?还是应用程序的名称始终相同?所以一旦我安装了 Firefox,我可以确定它的 classname 没有改变?

谢谢!

保证 class 不变的唯一方法是应用程序开发人员做出一些承诺。例如 Winamp 保证它的 window class 所以你可以在它上面使用 FindWindow 来实现自动化。

但是没有什么可以阻止应用程序为其创建的每个 window 使用不同的 class 名称。

请注意,如果您正在尝试自动化外部应用程序,window class name 只是无数移动目标问题中的一个。例如,您通过 FindWindow 获得 window 句柄。您将 WM_COMMAND 发送给您找到的某个命令 ID。下一版本应用程序更改此命令的 ID。同样的问题。