精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>技术精解:内存、进程、线程等>>显示系统正在运行的任务

主题:显示系统正在运行的任务
发信人: headstream()
整理人: wenbobo(2002-12-27 15:55:46), 站内信件
生成一个dialog based程序,在Dialog上放一个按钮,一个List,假设List
的ID是IDC_LIST1,加入下面这段代码,可列出所以正在运行的程序,包括
绝对路径。
按钮部分:
void CMyDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    HANDLE hSnapshot=pCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); 

    PROCESSENTRY32 pe; 
    if(!hSnapshot) 
        return; 
    CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1); 
    list->ResetContent(); 
    pe.dwSize=sizeof(pe); 
    for(int i=pProcess32First(hSnapshot,&pe);i;i=pProcess32Next(hSnaps
hot,&pe)) 
    { 
        HANDLE hModuleSnap=NULL; 
        MODULEENTRY32 me; 
        hModuleSnap=pCreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th
32ProcessID); 
        if(hModuleSnap==(HANDLE)(-1)) 
            return; 
        me.dwSize=sizeof(MODULEENTRY32); 
        if(pModule32First(hModuleSnap,&me)) 
        { 
            do 
            { 
                if(me.th32ModuleID==pe.th32ModuleID) 
                { 
                    list->AddString(me.szExePath); 
                    break; 
                } 
            }while(pModule32Next(hModuleSnap,&me)); 
        } 
    } 
    CloseHandle(hSnapshot); 
}

--
不是我不明白,计算机这玩意儿变化快

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.97.30.181]

[关闭][返回]