从HWND到应用程序名称

时间:2019-01-15 22:08:28

标签: c++ windows

我想从窗口句柄application.exe获取应用程序名称(即HWND),该句柄来自{{1}的WINEVENTPROC钩子的SetWinEventHook回调}}。

我已经有了进程ID,并尝试使用EVENT_SYSTEM_FOREGROUND,但是我似乎缺少了一些东西,因为它总是返回一个空字符串。

GetModuleFileName

这是我试图做的,但是我显然不明白。

1 个答案:

答案 0 :(得分:3)

GetModuleFileName(reinterpret_cast<HMODULE>(processId), ...);

完全不正确。进程ID不是HMODULE,并且不能像这样被强制为一个。

您需要做的是将进程ID传递给OpenProcess(),以请求PROCESS_QUERY_LIMITED_INFORMATION访问权限。如果成功,则可以在从 that 函数返回的HANDLE上使用QueryFullProcessImageName()