判断一个进程是否打开

//头文件

#include<Psapi.h>
#pragma comment(lib,"psapi.lib")

 

//-----------------FindProcess--------------------
    //找到自己文件名
 char szName[]="XXXX.exe";
 

 

 DWORD   aProcesses[1024],cbNeeded,dwProcesses; 
 char szProcessName[MAX_PATH];
      unsigned   int   iID;
   //枚举系统进程ID列表
   EnumProcesses(aProcesses,sizeof(aProcesses),&cbNeeded);
  dwProcesses=cbNeeded/sizeof(DWORD);
  for (iID = 0 ; iID < dwProcesses ; ++iID)
  {
   //取得进程的句柄 
         HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,aProcesses[iID]);
   if(hProcess)
   {
    HMODULE hMod;
    DWORD dwNeeded;
    if(EnumProcessModules(hProcess,&hMod,sizeof(hMod),&dwNeeded))
    {
     memset(szProcessName,0,sizeof(szProcessName));
     GetModuleBaseName(hProcess,hMod,szProcessName,sizeof(szProcessName));
     if(0 == strcmp(szProcessName,szName))//匹配进程名
     {
         return ERROR_FILE_ALREADY_OPEN;
     }
    }
   }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值