【C/C++】指定プロセスがx 64であるか否かを判断する方法
714 ワード
BOOL IsWow64ProcessEx(HANDLE hProcess)
{
// x86 , x64
bool isX86 = false;
#ifndef _WIN64
isX86 = GetProcAddress(GetModuleHandle(TEXT("ntdll")), "NtWow64DebuggerCall") == nullptr ? TRUE : FALSE;
#endif
if (isX86)
return FALSE;
// , x64 , IsWow64Process
typedef BOOL(WINAPI *ISWOW64PROCESS)(HANDLE, PBOOL);
ISWOW64PROCESS fnIsWow64Process;
BOOL isWow64 = TRUE;
fnIsWow64Process = (ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
if (fnIsWow64Process != nullptr)
fnIsWow64Process(hProcess, &isWow64);
return !isWow64;
}
OpenProcessでターゲットプロセスを開き、ハンドルを入れればOKです.