Windows编程 - 显示系统进程

主要:

#include <tlhelp32.h> // 声明快照函数的头文件

PROCESSENTRY32 pe32;
    // 在使用这个结构之前,先设置它的大小
   pe32.dwSize = sizeof(pe32);

HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

 

#include "stdafx.h"
#include 
<stdlib.h>
#include 
<windows.h> 
#include 
<tlhelp32.h> // 声明快照函数的头文件

int main(int argc, char* argv[])
{
    PROCESSENTRY32 pe32;
    
// 在使用这个结构之前,先设置它的大小
    pe32.dwSize = sizeof(pe32); 
 
    
// 给系统内的所有进程拍一个快照
    HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    
    system(
"chcp 936");
    
if(hProcessSnap == INVALID_HANDLE_VALUE)
    
{
        printf(
" CreateToolhelp32Snapshot调用失败! \n");
        
return -1;
    }
 
    
// 遍历进程快照,轮流显示每个进程的信息
    BOOL bMore = ::Process32First(hProcessSnap, &pe32);
    
while(bMore)
    
{
        printf(
" 进程名:%s \n", pe32.szExeFile);
        printf(
" 进程ID :%u \n\n", pe32.th32ProcessID);

        bMore 
= ::Process32Next(hProcessSnap, &pe32);
    }


    
// 不要忘记清除掉snapshot对象
    ::CloseHandle(hProcessSnap);
    
return 0;
}


posted @ 2009-07-12 20:32  Keosu  阅读(357)  评论(0编辑  收藏  举报