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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376764.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376764.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376764.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

推薦一份不錯的清除默認樣式的CSS樣式

時間過得真快,離 Reset CSS 研究(八卦篇) 已經 3 個多月了。廢話少說,趕緊將技術篇寫完吧。 回顧與反思 第一份 reset css 是 Tantek 的 undohtml.css, 很簡單的代碼,Tantek 根據自己的需要,對瀏覽器的默認…

python深淺拷貝

在python中,對象賦值實際上是對象的引用。當創建一個對象,然后把它賦給另一個變量的時候,python并沒有拷貝這個對象,而只是拷貝了這個對象的引用。 所以一個結構類型被賦給另外一個對象的時候,盡可能不使用 &#xff…

Flash中的SLC/MLC/MLC--基礎

參考 1.http://www.upantool.com/jiaocheng/qita/2012/slc_mlc_tlc.html 2.http://www.2ic.cn/html/10/t-432410.html 3.http://kms.lenovots.com/kb/article.php?id15382 4.http://www.albertknight.com/222.html 5.http://ssd.zol.com.cn/371/3716632.html 6.這個圖比較多 h…

python定義對象的比較方法

有時候我們需要比較兩個對象。比如哪個對象大,哪個對象小。如果我們不告訴python如何比較,那么Python是不知道如何進行比較的。 下面提供實例 #__eq__(self,other): #在使用比較運算符比較兩個對象是否相等的時候會調用這個方法。 #如果是相等,那么應該返…

關于Oracle Insert 語句的子查詢 和 with check option的用法

今日睇ocp教程 發現 insert語句還可以子查詢例如:INSERT INTO (SELECT employee_id, last_name, email, hire_date, job_id, salary, department_id FROM employees where department_id 50 )VALUES (9999…

apple mac 下使用機械鍵盤的辦法,鍵盤映射工具軟件,apple mac Mechanical keyboard

apple mac 下使用機械鍵盤的辦法,鍵盤映射工具軟件,apple mac Mechanical keyboard 想在蘋果電腦 mac 系統下使用 機械鍵盤,大部分機械鍵盤不是為mac設計的,所以需要用軟件做一下鍵盤映射。 推薦使用這個:https://pqrs…

Python中鍵映射多個值的方法:defaultdict

Python中鍵映射多個值的方法有兩種: 想保持元素的插入順序就應該使用列表; 想去掉重復元素就使用集合并且不關心元素的順序問題的話應該使用set from collections import defaultdictmapping defaultdict(list)mapping [key].append(value)mapping d…

該不該讓Google收錄WordPress的目錄頁和標簽頁?

只要有一點SEO知識的 站長都會注意利用相關文件和元標簽來控制Google對網站的收錄,對于WordPress網站來說,除了我們主動添加的內容頁面,Google還會收錄目錄歸檔頁,標簽歸檔頁,時間歸檔頁,以及作者歸檔頁。這…

【原創】MapReduce編程系列之表連接

問題描述需要連接的表如下:其中左邊是child,右邊是parent,我們要做的是找出grandchild和grandparent的對應關系,為此需要進行表的連接。 Tom Lucy Tom Jim Lucy David Lucy Lili Jim Lilei Jim SuSan Lily Green Lily Bians Green…

python logging模塊簡單使用

logging 是線程安全的,也就是說,在一個進程內的多個線程同時往同一個文件寫日志是安全的。 但是多個進程往同一個文件寫日志不是安全的。 import loggingLOG_FORMAT "%(asctime)s - %(levelname)s - %(message)s" DATE_FORMAT "%m/%d/…

OpenACC 中parallel 和kernels的區別

Kernels構件 Kernels構件源于PGI Accelerator模型的region構件。嵌套kernels構件里的循環可能會被編譯器轉換成能在GPU上高效并行的部分。在這個過程中有三步。 1:判斷并行中遇到的循環。 2:把抽象的并行轉換成硬件上的并行。對于NVIDIA CUDA GPU&#…

ORACLE基本SQL語句-查詢篇

一、普通查詢 /*查詢表數據*/select * from STU /*取出前3行數據*/select * from stu where ROWNUM<3 /*模糊查詢*/select * from stu where stu_id like stu001% 說明&#xff1a;通配符“%”代表一個或者多個字符&#xff0c;通配符“_”代表一個字符。 /*別名*/select S…

三次握手建立失敗的幾種情況以及三次握手的理解

上面的圖是阻塞式socket進行通信的過程&#xff0c;阻塞的時候是操作系統內核網絡協議棧在工作 調用 connect 函數將激發 TCP 的三次握手過程&#xff0c;而且僅在連接建立成功或出錯時才返回。其中出錯返回可能有以下幾種情況&#xff1a; 1、三次握手無法建立&#xff0c;客…

db_name,instance_name,service_names,db_domain,dbid,oracle_sid等區別與聯系

最近整理了一篇文章&#xff1a;oracle listener 有網友對數據庫是否顯式設置了instance_name和service_names提出疑問。 由此引發出db_name,instance_name,oracle_sid等等這些常見的參數都代表什么意思&#xff0c;怎么取值的&#xff0c;有什么區別&#xff1f; SQL> sele…

檢測版本更新

如果我們要檢測app版本的更新&#xff0c;那么我們必須獲取當前運行app版本的版本信息和appstore 上發布的最新版本的信息。 當前運行版本信息可以通過info.plist文件中的bundle version中獲取&#xff1a; [cpp] view plaincopy NSDictionary *infoDic [[NSBundle mainBundle…

linux 啟動/關閉多個py腳本

后臺運行腳本 需求&#xff1a;很多時候我們會在 linux 服務器上執行 python 腳本&#xff0c;然而腳本程序執行的時間可能比較長&#xff0c;當耗時過長的情況下&#xff0c;我們使用 ssh 遠程登錄到 linux 服務器上容易造成超時自動斷開連接&#xff0c;當用戶注銷時&#x…

在熟練使用2B鉛筆前,請不要打開Axure

在互聯網產品領域&#xff0c;Axure已成為產品經理、產品設計師以及交互設計師的必備工具&#xff0c;從某種程度講&#xff0c;Axure幫助我們建立低保真模型&#xff0c;便于與用戶的需求驗證&#xff0c;也幫助我們構思交互細節&#xff0c;使前端和開發人員更容易理解我們的…

啟用isqlplus

iSQL*Plus是sqlplus基于web方式發布的&#xff0c;要使用它只要在服務器上開啟即可&#xff1a; [oraclelocalhost ~]$ isqlplusctl start perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE (unset), LC_ALL (unset)…

YUI 的模塊信息配置優先級關系梳理

背景 YUI的配置參數較多&#xff0c; 可以在好幾個地方配置一個module的相關信息&#xff0c; 如&#xff1a; //在全局配置&#xff0c; 所以YUI實例共享 YUI_config {modules: {w-autcomplete: {requires: [module1],path: test1.js,}},groups: {modules: {w-autocomplete: …

echarts 怎么知道鼠標點擊的哪根柱子

有個需求&#xff0c;點擊柱子&#xff0c;然后得到該柱子的信息&#xff0c;然后展示這個機房的時序圖。 第一步卡住了&#xff0c;就是不知道如何獲取柱子的序號。后參考&#xff1a;https://blog.csdn.net/zt_fucker/article/details/72461572?utm_sourceblogxgwz1 得到思路…