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获取进程可执行文件名称