zoukankan      html  css  js  c++  java
  • 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 = { 0 };
                CreateProcess(L"..\Debug\双进程守护B.exe", 
                    NULL, NULL, NULL,
                    NULL, NULL, NULL, NULL,
                    &StartupInfo,
                    &ProcessInformation);
                WaitForSingleObject(ProcessInformation.hProcess, -1);
    
            }
            else
            {
                DWORD dwPid = 0;
                GetWindowThreadProcessId(hWnd, &dwPid);
                HANDLE hProc = OpenProcess(
                    SYNCHRONIZE, NULL, dwPid);
                WaitForSingleObject(hProc, -1);
            }
        }
    }

    双进程守护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 = { 0 };
                CreateProcess(L"..\Debug\双进程守护A.exe",
                    NULL,NULL, NULL,
                    NULL, NULL,NULL, NULL, 
                    &StartupInfo, 
                    &ProcessInformation);
    
                WaitForSingleObject(
                    ProcessInformation.hProcess, -1);
    
            }
            else
            {
                DWORD dwPid = 0;
                GetWindowThreadProcessId(hWnd, &dwPid);
                HANDLE hProc = OpenProcess(SYNCHRONIZE, NULL, dwPid);
                WaitForSingleObject(hProc, -1);
            }
        }
    }
  • 相关阅读:
    Linux常用命令
    关于MUI v0.18.0版本 Table组件里的复选框不能选的解决方案
    React---点击按钮实现内容复制功能
    js作用域相关笔记
    React监听窗口变化事件
    Express搭建NodeJS项目
    react +MUI checkbox使用
    React鼠标事件
    初入React(一)
    彻底搞懂hashCode与equals的作用与区别及应当注意的细节
  • 原文地址:https://www.cnblogs.com/ltyandy/p/10939815.html
Copyright © 2011-2022 走看看