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);
            }
        }
    }
  • 相关阅读:
    Hadoop技术创新方案
    什么是大数据
    大数据框架hadoop服务角色介绍
    学习hadoop需要什么基础
    web开发安全框架中的Apache Shiro的应用
    大数据分布式存储的部署模式:分离式or超融合
    Class类的getSimpleName()
    Eclipse快捷键
    mysql_建立索引的优缺点
    锁表 for update
  • 原文地址:https://www.cnblogs.com/ltyandy/p/10939815.html
Copyright © 2011-2022 走看看