获取SetClassLongPtr使用的类

时间:2014-06-27 09:41:34

标签: winapi setclasslong

我有多个firefox配置文件,每个配置文件运行多个窗口。 当我从每个配置文件中选择一个随机窗口并在该窗口hwnd上运行此代码时,它会为该配置文件中的所有窗口设置图标。 SetClassLongPtr(targetWindow_handle, GCLP_HICONSM, ctypes.cast(hIconSmall, ctypes.uintptr_t));

我想知道如何上课?

我尝试在所有窗口句柄上使用GetClassName,但无论配置文件如何,都会为所有窗口返回MozillaWindowClass。然而SetClassLongPtr不适用于配置文件,所以我知道第一个配置文件中的窗口类别与第二个配置文件中的窗口类别不同。

1 个答案:

答案 0 :(得分:1)

每个进程注册私有窗口类。因此,虽然每个窗口都使用具有相同名称的窗口类,但这些名称是相对于每个进程命名空间定义的。因此,进程A中名为foo的窗口类与进程B中名为foo的窗口类不同。

根据这些知识以及您在问题中报告的事实,Firefox似乎对不同的配置文件使用单独的流程。但我可以想象不同版本的Firefox表现不同。在我看来,这是一个你不应该依赖的实现细节。