我試圖讓我的所有推出的Windows可執行名稱的名字和我的問題是:如何獲得一個窗口的可執行文件名
我使用的方法
UINT GetWindowModuleFileName(
HWND hwnd,
LPTSTR lpszFileName,
UINT cchFileNameMax);
我不明白爲什麼它不起作用。
數據,我有一個窗口,分別是:
-HWND及的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的是我的可執行文件的名稱,但它不是記事本+ +的完整路徑...它也使Mozilla Thunderbird ...我不明白爲什麼
我使用這樣的功能:
char filenameBuffer[4000];
if (GetWindowModuleFileName(hWnd, filenameBuffer, 4000) > 0)
{
std::cout << "GetWindowModuleFileName(): " << filenameBuffer << std::endl;
}
謝謝你的迴應。
@avakar:謝謝你的工作 – Jaguar 2010-03-07 19:51:01
http://msdn.microsoft.com/en-us/library/windows/desktop/dd318087%28v=vs.85%29.aspx – 2013-09-17 07:40:26
@MartinBa,請注意,它帶來了依賴oleacc.dll,但。 – avakar 2013-09-17 08:04:00