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);
            }
        }
    }
  • 相关阅读:
    MVC三层架构
    JavaScript,你好!(二)
    HTML你好!
    Typora,你好!
    安装mysqlmysql-5.7.24-linux-glibc2.12-x86_64
    sizeof与strlen的区别
    printf格式化输出
    java泛型讲解
    双系统删除Linux系统
    kali破解wifi密码
  • 原文地址:https://www.cnblogs.com/ltyandy/p/10939815.html
Copyright © 2011-2022 走看看