
正文
Window提高_3.1练习_双进程守护
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
双进程守护
当打开一个进程A的时候,此进程检测是否存在进程B,如果不存在就创建进程B。
进程B的作用是检测进程A是否被关闭,如果被关闭了,就再创建一个进程A。
双进程守护A.exe代码如下:
#include "pch.h"
#include <iostream>
#include <windows.h>
int main()
{
while (TRUE)
{
HWND hWnd = FindWindow(NULL, L"双进程守护B");
if (hWnd==NULL)
{ STARTUPINFO StartupInfo = { sizeof(STARTUPINFO) };
PROCESS_INFORMATION ProcessInformation = { };
CreateProcess(L"..\\Debug\\双进程守护B.exe",
NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
&StartupInfo,
&ProcessInformation);
WaitForSingleObject(ProcessInformation.hProcess, -); }
else
{
DWORD dwPid = ;
GetWindowThreadProcessId(hWnd, &dwPid);
HANDLE hProc = OpenProcess(
SYNCHRONIZE, NULL, dwPid);
WaitForSingleObject(hProc, -);
}
}
}
双进程守护B.exe代码如下:
#include "pch.h"
#include <iostream>
#include <windows.h>
int main()
{
while (TRUE)
{
HWND hWnd = FindWindow(NULL, L"双进程守护A");
if (hWnd == NULL)
{
STARTUPINFO StartupInfo = { sizeof(STARTUPINFO) };
PROCESS_INFORMATION ProcessInformation = { };
CreateProcess(L"..\\Debug\\双进程守护A.exe",
NULL,NULL, NULL,
NULL, NULL,NULL, NULL,
&StartupInfo,
&ProcessInformation); WaitForSingleObject(
ProcessInformation.hProcess, -); }
else
{
DWORD dwPid = ;
GetWindowThreadProcessId(hWnd, &dwPid);
HANDLE hProc = OpenProcess(SYNCHRONIZE, NULL, dwPid);
WaitForSingleObject(hProc, -);
}
}
}






