我正在尋找一種方法來檢測具有相同進程名稱的正在運行的進程的數量。在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