找不到 window C++
Can't find window C++
我正在编写一个代码,需要访问死岛游戏中的内存文件,但问题是当我 运行 代码时,它说无法找到 window。我已经尝试过其他程序并且它有效。我已经尝试了它在任务管理器中的名称,但它仍然不起作用。这是我的代码
HWND hWnd = FindWindowW(NULL, L"Dead Island - Definitive Edition");
方式一:使用::FindWindowEx()
模式 2 : 从 exe 名称获取 window 句柄(!设置死岛的 exe 名称)
TCHAR* szExeName = _T("Dead Island"); //Dead Island.exe
HANDLE GetHandleOfDeadIsland()
{
HANDLE hDeadIsland = INVALID_HANDLE_VALUE;
HANDLE hSnap = INVALID_HANDLE_VALUE;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE != hSnap)
{
if (Process32First(hSnap, &pe32))
{
do
{
//!!! Attention pe32.szExeFile always return exe file name. not window title.
if (NULL != _tcsstr(pe32.szExeFile, szExeName))
{
hDeadIsland = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pe32.th32ProcessID);
break;
}
} while (Process32Next(hSnap, &pe32));
}
}
return hDeadIsland;
}
int main()
{
HANDLE hDeadIsland = GetHandleOfDeadIsland();
if (INVALID_HANDLE_VALUE == hDeadIsland)
{
_tprintf(_T("Not Found\n"));
}
else
{
_tprintf(_T("Found\n"));
}
return GetLastError();
}
你确定死岛 exe 是 "Dead Island" 而不是 "DeadIsland.exe" 吗?
我正在编写一个代码,需要访问死岛游戏中的内存文件,但问题是当我 运行 代码时,它说无法找到 window。我已经尝试过其他程序并且它有效。我已经尝试了它在任务管理器中的名称,但它仍然不起作用。这是我的代码
HWND hWnd = FindWindowW(NULL, L"Dead Island - Definitive Edition");
方式一:使用::FindWindowEx()
模式 2 : 从 exe 名称获取 window 句柄(!设置死岛的 exe 名称)
TCHAR* szExeName = _T("Dead Island"); //Dead Island.exe
HANDLE GetHandleOfDeadIsland()
{
HANDLE hDeadIsland = INVALID_HANDLE_VALUE;
HANDLE hSnap = INVALID_HANDLE_VALUE;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE != hSnap)
{
if (Process32First(hSnap, &pe32))
{
do
{
//!!! Attention pe32.szExeFile always return exe file name. not window title.
if (NULL != _tcsstr(pe32.szExeFile, szExeName))
{
hDeadIsland = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pe32.th32ProcessID);
break;
}
} while (Process32Next(hSnap, &pe32));
}
}
return hDeadIsland;
}
int main()
{
HANDLE hDeadIsland = GetHandleOfDeadIsland();
if (INVALID_HANDLE_VALUE == hDeadIsland)
{
_tprintf(_T("Not Found\n"));
}
else
{
_tprintf(_T("Found\n"));
}
return GetLastError();
}
你确定死岛 exe 是 "Dead Island" 而不是 "DeadIsland.exe" 吗?