zoukankan      html  css  js  c++  java
  • 根据进程获得exe名称

    #include<windows.h>
    
    //定义出错类型,列举所有出错提示框的信息
    const TCHAR *szErrorInfo[] = 
    {
        _T("致命的应用程序错误"),
        _T("应用程序错误"),
        _T("Fatal Application Error"),
        _T("Application Error"),
        NULL,
    };
    
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
    {
        HANDLE hMutex = CreateMutex(NULL,FALSE,_T("SAVIOR"));
        if (hMutex)
        {
            if(ERROR_ALREADY_EXISTS == GetLastError())
            {
                return FALSE;
            }
        }
    
        TCHAR szPath[256];
        while (1)
        {
            HWND hWnd = NULL;        
            for (int i = 0;szErrorInfo[i];i++)
            {
                if (szErrorInfo[i])
                {
                    hWnd = FindWindow(NULL,szErrorInfo[i]);
                    if (hWnd)
                    {
                        //查找到出错提示对话框
                        DWORD dwProcessID;
                        
                        //获取出错进程ID
                        GetWindowThreadProcessId(hWnd,&dwProcessID);
                        
                        //获取出错进程句柄
                        HMODULE hProc = (HMODULE)OpenProcess(0,FALSE,dwProcessID);
                        if (hProc)
                        {
                            //获取出错进程对应的EXE
                            GetModuleFileName(hProc,szPath,255);
                        }
                        
                        //关闭出错提示对话框
                        SendMessage(hWnd,WM_CLOSE, 0, 0);
                        Sleep(3000);
    
                        //重新启动出错应用程序
                        PROCESS_INFORMATION pi;    
                        if (CreateProcess(szPath,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&pi))
                        {
                            CloseHandle(pi.hProcess);
                        }
                    }
                }
                Sleep(100);
            }        
            Sleep(1500);
        }
        return TRUE;
    }
    

      

  • 相关阅读:
    SQL的join使用图解
    归并排序的JAVA实现
    java 快速排序 时间复杂度 空间复杂度 稳定性
    哈希表(HashMap)分析及实现(JAVA)
    外部排序
    海量数据面试题整理
    《CSS3秘籍》第6、7章
    《CSS3秘籍》第3-5章
    《CSS3秘籍》第1、2章
    《HTML5与CSS3基础教程》第11、14-16、18章
  • 原文地址:https://www.cnblogs.com/fuyanwen/p/3569372.html
Copyright © 2011-2022 走看看