如何在C++中获取Win10开始菜单的hwnd?

3

我使用FindWindowEx+ ClassName:Windows.UI.Core.CoreWindow和Caption:start menu来查找win10开始菜单的hwnd,但返回NULL,我想要获取它的hwnd,然后就可以获取矩形,但我无法获取hwnd,在C++代码中有人知道如何获取吗?非常感谢!


3
你正在使用Win32 API还是UWP API?你可以使用Spy++来查找有关Windows 10开始菜单的更多信息。它可以从VS -> 工具 -> Spy++启动。 - undefined
我使用了Win32 API的FindWindowEx,但它不起作用。Spy++无法找到Win10的开始菜单,只能找到开始按钮。那么,有没有办法获取Win10开始菜单的矩形区域?非常感谢! - undefined
我曾经使用过一个叫做WinID的实用工具来帮助处理这类问题。它可以实时更新,并显示开始菜单/屏幕的详细信息。这是我所知道的最简单的非编程方式来获取开始菜单的hWnd。你可以在https://dennisbabkin.com/winid/找到它。 - undefined
1个回答

0
我遇到了和你一样的问题,Spy++ 找不到开始菜单的句柄。而当开始菜单没有显示时,无法获取 Windows.UI.Core.CoreWindow 窗口。我找到了一个解决方案,就是先显示开始菜单,然后调用 WindowFromPoint 函数来获取开始菜单的句柄。
    POINT point{ 0,1030 };  //Assuming your resolution is 1920*1080

    keybd_event(VK_LWIN, 0x45, NULL, NULL);  //show start menu
    keybd_event(VK_LWIN, 0x45, KEYEVENTF_KEYUP, NULL);

    Sleep(100);
    HWND hwnd = WindowFromPoint(point);  //get start menu hwnd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接