我正在寻找一种方法来检测具有相同进程名称的正在运行的进程的数量。在C++中计算相同的运行进程的总数
例如,我跑了三次记事本。
NOTEPAD.EXE NOTEPAD.EXE NOTEPAD.EXE
那么它将返回3.
目前,我有这些代码来检测正在运行的进程,但不包括其正在运行的进程数量。
#include <iostream> #include <windows.h> #include <tlhelp32.h> #include <tchar.h> bool IsProcessRunning(const char *ProcessName); int main() { char *notepadRunning = (IsProcessRunning("notepad.exe")) ? "Yes" : "No"; std::cout << "Is Notepad running? " << notepadRunning; return 0; } bool IsProcessRunning(const char *ProcessName) { PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) }; HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(Process32First(hSnapshot, &pe32)) { do { if(_tcsicmp(pe32.szExeFile, ProcessName) == 0) { CloseHandle(hSnapshot); return true; } } while(Process32Next(hSnapshot, &pe32)); } CloseHandle(hSnapshot); return false; }
任何形式的帮助,将不胜感激:)
感谢。
谢谢!这与删除CloseHandle一样简单! – 2009-08-02 13:57:27