日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SDK 操作 list-view control 实例 -- 遍历进程

發布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SDK 操作 list-view control 实例 -- 遍历进程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

遍歷窗口,獲得控件句柄

1 EnumChildWindows(hwndDlg, (WNDENUMPROC)EnumChildProc, NULL);

回調函數

1 BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam ) 2 { 3 char strCLSName[MAXBYTE] = {0}; 4 GetClassName(hwnd, strCLSName, MAXBYTE); 5 if (strcmp(strCLSName, "SysListView32") == 0)//找到列表控件 6 { 7 InsertColumn(hwnd);//添加標題 8 EnumProgress(hwnd);//添加內容 9 return true;//結束遍歷 10 } 11 12 return false;//繼續遍歷子窗口 13 }

添加標題

1 void InsertColumn(HWND hList) 2 { 3 LV_COLUMN lvc = {0}; 4 5 lvc.mask = LVCF_TEXT | LVCF_WIDTH; 6 lvc.pszText = "PID"; 7 lvc.cx = 80; 8 SendMessage(hList, LVM_INSERTCOLUMN, 0, (long)&lvc); 9 lvc.pszText = "父進程PID"; 10 lvc.cx = 100; 11 SendMessage(hList, LVM_INSERTCOLUMN, 1, (long)&lvc); 12 lvc.pszText = "映像名稱"; 13 lvc.cx = 200; 14 SendMessage(hList, LVM_INSERTCOLUMN, 2, (long)&lvc); 15 }

添加內容

1 BOOL EnumProgress(HWND hList) 2 { 3 BOOL bRet = FALSE; 4 HANDLE hProcessSnap = NULL; 5 6 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 7 if (hProcessSnap == INVALID_HANDLE_VALUE) 8 { 9 return FALSE; 10 } 11 12 PROCESSENTRY32 pe32 = {0}; 13 pe32.dwSize = sizeof(PROCESSENTRY32); 14 if (Process32First(hProcessSnap, &pe32)) 15 { 16 LVITEM lvi = {0}; 17 lvi.mask = LVIF_TEXT; 18 char strTmp[MAXBYTE] = {0}; 19 do 20 { 21 ZeroMemory(strTmp, MAXBYTE); 22 sprintf(strTmp, "%d", pe32.th32ProcessID); 23 lvi.iItem = 0; 24 lvi.iSubItem = 0;//發送LVM_INSERTITEM消息時,subitem必須為0 25 lvi.pszText = strTmp; 26 int nIndx = SendMessage(hList, LVM_INSERTITEM, 0, (LPARAM)&lvi);//返回值為item的索引 27 28 ZeroMemory(strTmp, MAXBYTE); 29 sprintf(strTmp, "%d", pe32.th32ParentProcessID); 30 lvi.iItem = nIndx; 31 lvi.iSubItem = 1; 32 lvi.pszText = strTmp; 33 SendMessage(hList, LVM_SETITEM, 0, (LPARAM)&lvi); 34 35 lvi.iSubItem = 2; 36 lvi.iItem = nIndx; 37 lvi.pszText = pe32.szExeFile; 38 SendMessage(hList, LVM_SETITEM, 0, (LPARAM)&lvi); 39 } 40 while (Process32Next(hProcessSnap, &pe32)); 41 bRet = TRUE; 42 } 43 else 44 { 45 bRet = FALSE; 46 } 47 48 CloseHandle (hProcessSnap); 49 return bRet; 50 }

?

轉載于:https://www.cnblogs.com/luzhiyuan/p/3899088.html

總結

以上是生活随笔為你收集整理的SDK 操作 list-view control 实例 -- 遍历进程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。