C++中怎么监控进程?本人C++小白,迫于特殊原因,求各位帮个忙!

2024-11-21 19:20:36
推荐回答(5个)
回答1:

实现代码如下,代码在vs2013和vs2017都通过测试:

#include "stdafx.h"
#include 
#include 

int main(int argc, char* argv[])
{
while (true) {
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot)
{
return 0;
}
PROCESSENTRY32 pi;
pi.dwSize = sizeof(PROCESSENTRY32);
BOOL bRet = Process32First(hSnapshot, &pi);
bool w1 = false;
bool w2 = false;
while (bRet)
{
if (!wcscmp(L"watch.exe", pi.szExeFile)) {
w1 = true;
}
else if (!wcscmp(L"asker.exe", pi.szExeFile)) {
w2 = true;
}
bRet = Process32Next(hSnapshot, &pi);
}

if (!w1) {
WinExec("C://windows//watch.exe", SW_SHOWMAXIMIZED);
}

if (!w2) {
WinExec("C://windows//asker.exe", SW_SHOWMAXIMIZED);
}

Sleep(3000);
}

return 0;
}

回答2:

CreateProcess函数,创建进程,其他的百度吧

回答3:

要用WINDOWS API, 这个不是C++的概念了。。。。。。

HANDLE hProces = CreateWindow(......);
while(true) {
WaitForSingleObject(hProcess, INFINITE);
CreateWindow(...);
}

或者你也可以拦截结束进程的TerminateProcess API

百度: CreateProcess 、 WaitForSingleObject 、 Hook API

回答4:

已鉴定,楼主是想弄病毒。

回答5:

同步COM+应用程序所用的IWAM_MYSERVER的密码