C语言 我检测到进程并在弹出cmd时尝试终止cmd,但不起作用



我使用Win32 API来监视进程,并尝试编写一个在运行时阻止cmd的程序。 (我想在检测到cmd时立即关闭它或禁用它。

但是当我运行它时,cmd 打开得很好(...

我该怎么办?你必须反过来做吗?

while (true) {
BOOL hRes = Process32Next(hSnapShot, &pEntry);
if (hRes == FALSE)
break;
if (pEntry.th32ProcessID == ::GetCurrentProcessId())
continue;
wchar_t* pn = pEntry.szExeFile;//I think this part may be a bit wrong but I don't know how to fix it...
if (pn != L"cmd.exe")
continue;
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pEntry.th32ProcessID);
if (hProc) {
// 죽여버려!!!!
if (TerminateProcess(hProc, 0)) {
unsigned long nCode;
GetExitCodeProcess(hProc, &nCode);
}
CloseHandle(hProc);
return 1;
}
}

我该怎么办? 如果这个问题没有足够的信息,请再问我一次。

如果你想比较C中的字符串,你不能通过==来做到这一点。这将比较字符串的地址。

使用strcmp()-family 的函数来比较字符串的内容。

注意:这在其他语言中也是一个大问题,例如Java或C#。

相关内容

  • 没有找到相关文章

最新更新