用c++编写一段完整代码,要求判断一个进程(例如qq.exe)是否存在,若存在,输出存在,不存在就输出不存在。
2016-07-29 19:48
896 查看
用c++编写一段完整代码,要求判断一个进程(例如qq.exe)是否存在,若存在,输出存在,不存在就输出不存在。
分享| 2013-01-1417: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; }
相关文章推荐
- 【effective c++】资源管理
- c/c++第五天
- C++11:基于std::queue和std::mutex构建一个线程安全的队列
- 趣味100道C语言编程题
- C语言考试
- 趣味100道C语言编程题num seven
- c语言:逆序的三位数
- c++计算器后续(4)
- C++中的Lambda表达式
- 大数幂 C语言
- 7.29的小记录
- 总结下C语言中的文件读取
- c++使用proto文件方法简介
- C++三种创建对象的方法区别
- C++ 操作XML文件 使用MSXML.DLL
- VIVO X7玫瑰金与银色边框颜色区分 方案(C++实现)
- hdu-1018Big Number(阶乘求位数)
- 32位与64位下各类型长度对比
- 生产者-消费者,使用C++11的版本
- C语言 程序 素数圈圈