1. 程式人生 > >C語言判斷進程是否存在

C語言判斷進程是否存在

while 結構 tdi exe print res 區分 第一個 cmp

#include <windows.h>
#include <tlhelp32.h>    //進程快照函數頭文件
#include <stdio.h>

bool getProcess(const char *procressName)                //此函數進程名不區分大小寫
{
    char pName[MAX_PATH];                                //和PROCESSENTRY32結構體中的szExeFile字符數組保持一致,便於比較
    strcpy(pName,procressName);                            //
拷貝數組 CharLowerBuff(pName,MAX_PATH); //將名稱轉換為小寫 PROCESSENTRY32 currentProcess; //存放快照進程信息的一個結構體 currentProcess.dwSize = sizeof(currentProcess); //在使用這個結構之前,先設置它的大小 HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//給系統內的所有進程拍一個快照
if (hProcess == INVALID_HANDLE_VALUE) { printf("CreateToolhelp32Snapshot()調用失敗!\n"); return false; } bool bMore=Process32First(hProcess,&currentProcess); //獲取第一個進程信息 while(bMore) { CharLowerBuff(currentProcess.szExeFile,MAX_PATH);
//將進程名轉換為小寫 if (strcmp(currentProcess.szExeFile,pName)==0) //比較是否存在此進程 { CloseHandle(hProcess); //清除hProcess句柄 return true; } bMore=Process32Next(hProcess,&currentProcess); //遍歷下一個 } CloseHandle(hProcess); //清除hProcess句柄 return false; } int main() { if (getProcess("qq.exe")) { printf("存在\n"); } else { printf("不存在\n"); } return 0; }

C語言判斷進程是否存在