【发布时间】:2021-10-04 13:08:35
【问题描述】:
我尝试获取所有已启动窗口的可执行文件名称,但我的问题是:
我用方法
UINT GetWindowModuleFileName(
HWND hwnd,
LPTSTR lpszFileName,
UINT cchFileNameMax);
我不明白为什么它不起作用。
关于窗口的数据是:
-HWND AND PROCESSID
错误是: 例如:
HWND: 00170628
ProcessId: 2336
WindowTitle: C:\test.cpp - Notepad++
GetWindowModuleFileName(): C:\test.exe
HWND: 00172138
ProcessId: 2543
WindowTitle: Firefox
GetWindowModuleFileName(): C:\test.exe
HWND: 00120358
ProcessId: 2436
WindowTitle: Mozilla Thunderbird
GetWindowModuleFileName(): C:\test.exe
注意:test.exe 是我的可执行文件的名称,但它不是 Notepad++ 的完整路径...而且它也适用于 Mozilla Thunderbird... 我不明白为什么
我使用这样的功能:
char filenameBuffer[4000];
if (GetWindowModuleFileName(hWnd, filenameBuffer, 4000) > 0)
{
std::cout << "GetWindowModuleFileName(): " << filenameBuffer << std::endl;
}
感谢您的回复。
【问题讨论】: