为什么 chrome/visual studio code/edge 都有相同的类名 "Chrome_WidgetWin_1"?

Why do chrome/visual studio code/edge all have the same classname "Chrome_WidgetWin_1"?

我尝试枚举桌面句柄的所有 Win32 子项,然后尝试使用 GetClassNameW(childHandle).

打印出每个子项的 class 名称

chrome 浏览器的 class 名称是“Chrome_WidgetWin_1”。但是Edge浏览器的class名称和Visual Studio代码的class名称也是“Chrome_WidgetWin_1”。

为什么会这样?为什么 Microsoft 决定为它们使用与 Chrome 相同的 class 名称?

Window class在不同进程中没有 CS_GLOBALCLASS 的注册在技术上并不相同 class 即使名称可能相同。

这些 class 名称是您不应依赖的内部细节,但在这种情况下它们是相同的,因为它们都使用基于 Chromium 的浏览器来驱动它们的 UI。 Visual Studio 从自定义 Microsoft 代码到 Chromium 的代码 is an Electron app (uses Chromium) and it is well known that Edge changed