c语言列举window进程

c语言列举window进程 - qidizi - qidizi 的博客


#include <tlhelp32.h>

#define ID_LIST     1    

 

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{        

static HWND   hwndList;  

int  cxChar, cyChar;   

 

 switch (message) {     

case   WM_CREATE :        
                      cxChar = LOWORD (GetDialogBaseUnits ()) ;  //获取行高     
                      cyChar = HIWORD (GetDialogBaseUnits ()) ;//获取列宽
                      hwndList = CreateWindow(TEXT ("listbox"), NULL,        
                              WS_CHILD | WS_VISIBLE | LBS_STANDARD,        
                              0, cyChar + 2,        
                              cxChar * 100 + GetSystemMetrics (SM_CXVSCROLL), //加上滚动条宽度
                              cyChar * 10,        
                              hwnd, (HMENU) ID_LIST,        
                              (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE),        
                              NULL) ;
                      showProcList (hwndList) ;      
                case   WM_SETFOCUS :        
                      SetFocus (hwndList) ;       //让listbox一运行就获得焦点,这样就可以直接使用上下键
                      return 0 ;    

}

}

 

 


/*
 * 列举当前运行中的进程pid
 */
void showProcList(HWND hwndList) {
    
     HANDLE             hProcessSnap;
    HANDLE             hProcess;
    PROCESSENTRY32     pe32;
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);/*进程快照*/

    if(hProcessSnap == INVALID_HANDLE_VALUE) {
        MessageBox(NULL,"获取进程快照失败! 有可能是系统不支持.",NULL, MB_OK);
        return;
    }

/*在使用 PROCESSENTRY32 结构之间需要先设置好该结构的大小 */
    pe32.dwSize = sizeof(PROCESSENTRY32);

/*获取第一个进程 */
    if(!Process32First(hProcessSnap, &pe32)) {
        CloseHandle(hProcessSnap);
        return;
    }
    
/*采用 Do - While 遍历所有进程 */
    do {  
            SendMessage (hwndList, LB_ADDSTRING, 0, (LPARAM) pe32.szExeFile) ;/*pe32.th32ProcessID*/
    } while(Process32Next(hProcessSnap, &pe32));
    
    CloseHandle(hProcessSnap);      
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值