小编Som*_*Guy的帖子

Windows 8/10中活动窗口的进程名称

以下示例已可靠地返回与活动窗口关联的进程的名称,但不适用于较新的现代/通用应用程序,因为它返回Windows 8上的帮助程序进程WWAHost.exeApplicationFrameHost.exe上的名称Windows 10而不是应用程序的名称.

HWND active_window = GetForegroundWindow();
GetWindowThreadProcessId(active_window, &active_process_id);
HANDLE active_process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, active_process_id);
GetProcessImageFileName(active_process, image_name, 512);
Run Code Online (Sandbox Code Playgroud)

在Windows 10中,ApplicationFrameHost.exe是创建窗口句柄的过程,也是GetWindowThreadProcessId()返回的内容,是否有另一个Win32 API可用于获取活动的通用应用程序的活动进程?

还尝试使用GetApplicationUserModelId()和GetPackageFullName()没有成功,因为它们分别返回APPMODEL_ERROR_NO_APPLICATION和APPMODEL_ERROR_NO_PACKAGE,因为active_process句柄只是辅助进程而不是活动应用程序的进程.

在给定窗口的hwnd的情况下,用于获取Modern/Universal应用程序的进程名称的任何其他API,或以其他方式确定通用应用程序的进程名称是活动的.

提前致谢!

c++ windows winapi accessibility win-universal-app

20
推荐指数
2
解决办法
5645
查看次数

Java:如何检查数组中的元素是否已初始化?

我想检查一个数组中的某个元素是否已经被启动,我该怎么做?

java

4
推荐指数
1
解决办法
7838
查看次数

标签 统计

accessibility ×1

c++ ×1

java ×1

win-universal-app ×1

winapi ×1

windows ×1