首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++Builder 使用 Toolhelp32 快照枚舉系統所有進程

     編輯:關於C++

實現目標

在窗體 ListView (vsReport 模式) 中顯示所有進程的 PID、父進程 ID 及可執行文件名。

核心代碼


#include 
#include 

void __fastcall TMainForm::Button1Click(TObject *Sender) {
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (snapshot == NULL) return;

    PROCESSENTRY32 processinfo;
    processinfo.dwSize = sizeof(processinfo);

    bool status = Process32First(snapshot, &processinfo);
    while (status) {
        TListItem *li = ListView1->Items->Add();
        char buffer[32];

        sprintf(buffer, "%08X", processinfo.th32ProcessID);
        li->Caption = buffer;

        sprintf(buffer, "%08X", processinfo.th32ParentProcessID);
        li->SubItems->Add(buffer);

        li->SubItems->Add(processinfo.szExeFile);

        status = Process32Next(snapshot, &processinfo);
    }
    CloseHandle(snapshot);
}

關鍵點說明

  • TH32CS_SNAPPROCESS 獲取進程列表快照。
  • PROCESSENTRY32.dwSize 必須先設置,否則 API 失敗。
  • Process32First/Next 遍歷快照,szExeFile 直接提供文件名(無路徑)。
  • PID 以十六進制顯示便於調試對比。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved