0
A
回答
0
HWND hw = FindWindow(NULL, L"Window Title");
if (hw)
{
DWORD dwProcessId = 0;
DWORD dwThreadId = GetWindowThreadProcessId(hw, &dwProcessId);
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessId);
if (hProcess)
{
wchar_t *szExeName[1024] = {0};
if (QueryFullProcessImageName(hProcess, 0, szExeName, _countof(szExeName))
{
// ...
}
CloseHandle(hProcess);
}
}
你或許應該使用類參數以及(在一個爲空在我的第一行),如果你知道它,所以它是不太可能,你會意外地發現,恰巧有其他一些程序的窗口相同的標題。
當然,類名不能保證在程序之間是唯一的,但組合比單獨使用標題更可靠。
您可以使用Spy ++輕鬆獲得窗口類。
編輯:QueryFullProcessImageName需要Vista,但可以根據DReJ的答案將該行換成使用GetProcessImageFileName的行。
編輯2:如果您不是爲Unicode編譯,請在「窗口標題」之前刪除「L」,並使用char緩衝區而不是wchar_t。
1
按標題搜索窗口是不可靠的。但是如果你想這樣做,首先你需要找到指定標題的窗口句柄。您可以使用EnumWindows函數輕鬆完成此操作。當您發現HWND時,您可以使用GetWindowThreadProcessId函數獲取進程ID。
UPD:要獲取進程名稱,您需要使用OpenProcess獲取進程句柄,並使用GetProcessImageFileName。
相關問題
- 1. 從進程ID獲取窗口標題
- 2. 我想獲得進程名,進程ID,進程路徑,產品名稱窗口標題
- 3. 如何使用vb.net獲取進程的窗口標題
- 4. 獲取進程名稱窗口標題名稱和安裝的軟件名稱
- 5. 使用進程ID和線程ID進行目錄命名
- 6. 如何在java中獲得進程ID?
- 7. powershell v2 - 如何獲得進程ID
- 8. 獲得進程的CPU使用量進程ID
- 9. 如何使用模塊獲取進程ID,名稱和狀態
- 10. 如何獲得從默認進程凍結進程ID
- 11. 如何從進程名稱獲取進程ID?
- 12. 如何枚舉所有進程及其關聯窗口標題和進程的名稱
- 13. 如何使用python或bat使用此進程的窗口名稱來終止進程
- 14. 如何獲取所有線程ID和進程的名稱
- 15. Applescript:如何獲得所有空間中進程的窗口數?
- 16. 在C++中使用其進程名稱進入前窗口
- 17. 如何使用一個進程給進程ID使用c#
- 18. 如何在erlang中獲取調用進程的進程ID?
- 19. 如何獲得進程「類型」(應用程序,後臺進程或Windows進程)
- 20. 如何獲得已安裝應用程序的進程名稱
- 21. 獲得多個進程的進程ID返回在bash
- 22. 你如何獲得線程的進程ID?
- 23. Gproc如何獲得註冊過程的進程ID?
- 24. 從子進程獲取父進程ID
- 25. 獲取PowerShell進程的進程ID
- 26. 獲取進程的所有窗口的進程
- 27. 使用'CreateProcess'隱藏進程窗口
- 28. 獲取所有進程id進程名在linux
- 29. 從進程ID獲取進程名稱(win32)
- 30. 從進程ID獲取進程可執行文件名稱