實現代碼如下,代碼在vs2013和vs2017都通過測試:
#include?"stdafx.h"#include?<windows.h>
#include?<Tlhelp32.h>
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;
}