打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
检测进程是否在运行【源】
摘自windows Mobile public下源码

Processinfo.hpp


#if !defined(_PROCESS_INFO_H)
#define _PROCESS_INFO_H

#include "StdAfx.h"

BOOL IsProcessRunning( TCHAR* ProcessName);
TCHAR* GetProcessName(TCHAR* svExeFile);

#endif


Processinfo.cpp

#include "ProcessInfo.hpp"

//该函数去除路径信息(如果存在的话)只取名称
TCHAR* GetProcessName(TCHAR* svExeFile)
{
    TCHAR* pchTemp = svExeFile, *pchRetVal;
    while(pchRetVal = wcschr(pchTemp, '\\'))
        pchTemp = pchRetVal+1;
    TCHAR* ExeName = new TCHAR[wcslen(pchTemp)+1];
    if (!ExeName)
        return NULL;
    wcscpy(ExeName, pchTemp);
    return ExeName;
}

//检测进程是否在运行
BOOL IsProcessRunning(TCHAR* ProcessName)
{
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if(hSnapShot == (HANDLE)-1)
    {
        DEBUGMSG (1,(L"Wbttscmn--IsProcessRunning -- Failed in CreateSnapShot and Error: %d\n",GetLastError()));
        return FALSE;
    }
    PROCESSENTRY32 lppe;

    memset(&lppe,0,sizeof(PROCESSENTRY32));

    lppe.dwSize = sizeof(PROCESSENTRY32);
    if(Process32First(hSnapShot, &lppe))
    {
        while(TRUE)
        {
            TCHAR* ExeFile = GetProcessName(lppe.szExeFile);
            if(!wcsicmp(ExeFile, ProcessName))
            {
                //这里看看能不能获得进程句柄,而不单单是比较进程名称。
                HANDLE CtlpnlProcess = OpenProcess(PROCESS_TERMINATE, FALSE, lppe.th32ProcessID);
                BOOL bRet = (CtlpnlProcess) ? TRUE : FALSE;
                CloseHandle(CtlpnlProcess);
                return bRet;
            }
            if(ExeFile)
                delete ExeFile;
            if(!Process32Next(hSnapShot, &lppe))
                break;
        }
    }
    CloseToolhelp32Snapshot (hSnapShot);
    return FALSE;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
获取CPU占用率 进程CPU占用率
VC下通过系统快照实现进程管理
64位系统下C++获取当前所有进程的完整路径
C++ 实现 查找进程, 杀死进程, 启动进程, 进程重启
获得系统中运行的程序及使用的DLL文件
Delphi通过进程名获取进程PID函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服