MFC 判断Windows某一进程是否在运行以及处理

来源:互联网 发布:手机淘宝体验中心在哪 编辑:程序博客网 时间:2024/06/06 05:39

判断某程序是否在运行


  • 采用进程检测的方法来检测某程序

    //check V3Monitor.exe to be existing or notint CV3ImportFileDlg::V3MonitorExist(){    PROCESSENTRY32 pe;    int pid = 0;    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);    pe.dwSize = sizeof(PROCESSENTRY32);    TCHAR ch[MAX_PATH] = _T("V3Monitor.exe");    if (hSnapshot == INVALID_HANDLE_VALUE)    {        return -1;    }    if (!::Process32First(hSnapshot, &pe))        return 0;    while (1)    {        pe.dwSize = sizeof(PROCESSENTRY32);        if ((_tcscmp(ch, pe.szExeFile)) == 0)        {            pid = pe.th32ProcessID;            break;        }        if (::Process32Next(hSnapshot, &pe) == FALSE)            break;    }    CloseHandle(hSnapshot);    return pid;}//close V3Monitor.exevoid CV3ImportFileDlg:: CloseV3Monitor(int pid){    HANDLE hProcess;    DWORD dwPriorityClass;    //打开进程句柄    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);    if (hProcess == NULL) return;    dwPriorityClass = GetPriorityClass(hProcess);    if (dwPriorityClass == 0) return ;     if (!TerminateProcess(hProcess, 1)) return;    CloseHandle(hProcess);    return;}//open V3Monitor.exevoid CV3ImportFileDlg::OpenV3Monitor(){    CString V3Monitor = m_strcurrentFilePath + _T("\\") + _T("V3Monitor.exe");    ShellExecute(NULL, _T("open"), V3Monitor, NULL, NULL, SW_SHOWNORMAL);                   //打开V3Monitor}

    V3Monitor.exe为待检测的应用程序。

0 0