通过窗口句柄获取程序路径位置
时间: 2023-10-07 11:03:57 浏览: 294
获取并判断程序句柄
可以通过以下代码获取程序窗口所属的可执行文件的路径:
```c++
HWND hWnd = FindWindow(NULL, "窗口标题"); // 根据窗口标题获取窗口句柄
if (hWnd != NULL)
{
DWORD processId;
GetWindowThreadProcessId(hWnd, &processId);
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processId);
if (hProcess != NULL)
{
TCHAR szExePath[MAX_PATH];
if (GetModuleFileNameEx(hProcess, NULL, szExePath, MAX_PATH))
{
// szExePath 就是程序的可执行文件路径
}
CloseHandle(hProcess);
}
}
```
其中,FindWindow 函数用来根据窗口标题获取窗口句柄,GetWindowThreadProcessId 函数用来获取窗口所属的进程 ID,OpenProcess 函数用来打开进程句柄,GetModuleFileNameEx 函数用来获取程序的可执行文件路径。注意,需要在编译时链接 psapi.lib 库才能使用 GetModuleFileNameEx 函数。
阅读全文