用c++编写一段完整代码,要求判断一个进程(例如qq.exe)是否存在,若存在,输出存在,不存在就输出不存在。

用c++编写一段完整代码,要求判断一个进程(例如qq.exe)是否存在,若存在,输出存在,不存在就输出不存在。

2013-01-14 17:52183****4371  |  浏览 583 次
2013-01-14 18:06 提问者采纳
#include <windows.h>    
#include <tlhelp32.h>  
#include <stdio.h>
 
BOOL FindProcess(char *pProcess)  
{  
    int i=0;  
    PROCESSENTRY32 pe32;  
    pe32.dwSize = sizeof(PROCESSENTRY32);   
    HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
    if(hProcessSnap == INVALID_HANDLE_VALUE)  
    {  
        printf("不能创建进程快照句柄!\n");
        return false;
    }  
    BOOL bMore = ::Process32First(hProcessSnap, &pe32);  
    while(bMore)  
    {         
        if(stricmp(pProcess,pe32.szExeFile) == 0)  
        {              
            i += 1;  //找到,可能不只一个进程
        }  
        bMore = ::Process32Next(hProcessSnap, &pe32);  
    }  
 
    if( i >= 1)
 {          
        return true;  
    }
 else
 {  
        return false;  
    }  
} 
 
int main()
{
 if (FindProcess("qq.exe"))
 {
  printf("qq.exe正在运行\n");
 }
 else
 {
  printf("没有找到qq.exe");
 }
 
 return 0;
}
追问:
能不能换成全才c++的代码,你这里面还有c语言
追答:
#include <windows.h>    
#include <tlhelp32.h> 
#include <iostream> 
#include <string>
using namespace std;

BOOL FindProcess(string strProc)  
{      
 int i=0;      
 PROCESSENTRY32 pe32;      
 pe32.dwSize = sizeof(PROCESSENTRY32);       
 HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);      
 if(hProcessSnap == INVALID_HANDLE_VALUE)      
 {          
  cout<<"创建进程快照句柄失败!"<<endl;
  return false;    
 }     
 BOOL bMore = ::Process32First(hProcessSnap, &pe32);      
 while(bMore)      
 {                 
  //这里还是使用stricmp函数最方便,否则还要统一转换成大写或者小写
  if(0 == stricmp(strProc.c_str(), pe32.szExeFile))       
  {                         
   i += 1;  //找到    
  }          
  bMore = ::Process32Next(hProcessSnap, &pe32);     
 }       
 if( i >= 1) 
 {                  
  return true;      
 } 
 else 
 {          
  return false;     
 }  
}  

int main()
{ 
 if (FindProcess("qq.exe")) 
 { 
  cout<<"qq.exe正在运行"<<endl; 
 } 
 else 
 {  
  cout<<"未找到qq.exe"<<endl; 
 }  
 return 0;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值