我想从窗口句柄application.exe
获取应用程序名称(即HWND
),该句柄来自{{1}的WINEVENTPROC
钩子的SetWinEventHook
回调}}。
我已经有了进程ID,并尝试使用EVENT_SYSTEM_FOREGROUND
,但是我似乎缺少了一些东西,因为它总是返回一个空字符串。
GetModuleFileName
这是我试图做的,但是我显然不明白。
答案 0 :(得分:3)
GetModuleFileName(reinterpret_cast<HMODULE>(processId), ...);
完全不正确。进程ID不是HMODULE
,并且不能像这样被强制为一个。
您需要做的是将进程ID传递给OpenProcess()
,以请求PROCESS_QUERY_LIMITED_INFORMATION
访问权限。如果成功,则可以在从 that 函数返回的HANDLE
上使用QueryFullProcessImageName()
。