首先談一談取得程序快照(列舉系統當前程序)的系統底層函式。一般我們會用到3個關鍵的函式:createtoolhelp32snapshot(),process32first()和process32next()。順帶介紹乙個openprocess函式。
他們的定義分別如下:
handle winapi createtoolhelp32snapshot(
dword dwflags, //系統快照要檢視的資訊型別
dword th32processid//值0表示當前程序
);bool winapi process32first(
handle hsnapshot,//createtoolhelp32snapshot()建立的快照控制代碼
lpprocessentry32 lppe//指向程序入口結構
);bool winapi process32next(
handle hsnapshot,//這裡引數同process32first
lpprocessentry32 lppe//同上
);使用方法:
然後呼叫process32first()獲得系統快照中的第乙個程序資訊(report是bool型作為判斷系統快照中下一條程序記錄):report=process32first(hprocess,pinfo);//report是bool值
接著用乙個迴圈呼叫來遍歷系統中所有執行的程序:
while(report)
在這個過程中我們很可能使用openprocess函式:
(handle openprocess(
dword dwdesiredaccess,
bool binherithandle,
dword dwprocessid
);)它是根據第三個引數dwprocessid來得到handle的。
相關資料:
msdn上的實現:
下面是操作的一段**:
**段1:
handle hprocesssnap=null
processentry32 pe=;
if(hprocesssnap==(handle)-1) return;
pe.dwsize=sizeof(processentry32);
if(process32first(hprocesssnap,&pe))
while(process32next(hprocesssnap,&pe));
**段2:
#include
#include
#include
bool getprocesslist ()
; //take a snapshot of all processes in the system.
if (hprocesssnap == (handle)-1)
return (false);
//fill in the size of the structure before using it.
pe32.dwsize = sizeof(processentry32);
//walk the snapshot of the processes, and for each process,
//display information.
if (process32first(hprocesssnap, &pe32))
; do }
while (process32next(hprocesssnap, &pe32));
bret = true;
} else
bret = false;// could not walk the list of processes
// do not fet to clean up the snapshot object.
closehandle (hprocesssnap);
return (bret);
}
Python之操作程序池技巧
當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。初始化pool時,可以指定乙個最大程序數,當有新的請求提交到poo...
Visual C 6 0 API函式操作技巧集
我們在編制應用軟體的過程中,常常需要對游標和滑鼠操作,本人在文中介紹了windows系統中有關實現對滑鼠和游標進行操作的api函式,並給出了在visual c6.0 中利用所介紹的api函式實現對滑鼠和游標的操作的 一 隱藏和顯示游標 函式 int showcursor bool bshow 引數 ...
Visual C 6 0 API函式操作技巧集
我們在編制應用軟體的過程中,常常需要對游標和滑鼠操作,本人在文中介紹了windows系統中有關實現對滑鼠和游標進行操作的api函式,並給出了在visual c6.0 中利用所介紹的api函式實現對滑鼠和游標的操作的 一 隱藏和顯示游標 函式 int showcursor bool bshow 引數 ...