Всем привет.
Допустим, есть такой код:
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
PROCESSENTRY32 entry;
DWORD procID = 0;
if (Process32First(snapshot, &entry) == TRUE) {
while (Process32Next(snapshot, &entry) == TRUE) {
if (strcmp(entry.szExeFile, "Checker.exe") == 0) {
procID = entry.th32ProcessID;
}
}
}
if (procID != 0) {
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ, NULL, procID);
__asm {
mov eax, hProcess
push eax
push 0
call TerminateProcess
}
}
Но при выполнении этого кода:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ, NULL, procID);
__asm {
mov eax, hProcess
push eax
push 0
call TerminateProcess
}
Он просто игнорирует. Не закрывает процесс.
Как правильно передать управление в __asm?
Проверял, процесс детектит, в hProcess не NULL!