4、獲取程序的可執行檔案或dll對應的控制代碼
hmodule getmodulehandle(
pctstr pszmodule); //模組名稱
注:當引數傳null時獲取的是程序的位址空間中可執行檔案的基位址。
5、獲取與指定視窗關聯在一起的乙個程序和執行緒識別符號
handle getwindowthreadprocessid(
hwnd hwnd, //視窗控制代碼
lpdword lpdwprocessid); //與該視窗相關的程序id
6、獲取程序的執行時間
bool getprocesstimes(
handle hprocess, //程序控制代碼
pfiletime pftcreationtime, //建立時間
pfiletime pftexittime, //退出時間
pfiletime pftkerneltime, //核心時間
pfiletime pftusertime); //使用者時間
注:返回的時間適用於某個程序中的所有執行緒(甚至已經終止執行的執行緒)。
7、獲取當前程序的乙個偽控制代碼
handle getcurrentprocess();
注:該函式獲取當前程序的偽控制代碼,通常情況值為-1,只能標識當前程序核心物件,
可以複製,但不可繼承。不必呼叫closehandle()函式來關閉這個控制代碼。
8、將程序的偽控制代碼轉換為實控制代碼
handle duplicatehandle(
getcurrentprocess(),
getcurrentprocess(),
getcurrentprocess(),
&hprocess,
0,false ,
duplicate_same_access);
9、獲取當前程序id
dword getcurrentprocessid();
10、獲取程序優先順序
dword getpriorityclass(
handle hprocess);
11、修改程序的優先順序類
bool setpriorityclass(
handle hprocess, //程序控制代碼
dword fdwpriority); //相對程序優先順序
注1:相對執行緒優先順序
實時: realtime_priority_class
高: high_priority_class
高於正常; above_normal_priority_class
正常: normal_priority_class
低於正常: below_normal_priority_class
空閒: idle_priority_class
注2:只要擁有程序的控制代碼和足夠的許可權,就能夠修改系統中執行的任何程序的優
先級類。
12、獲取程序控制代碼計數
bool getprocesshandlecount(
handle hprocess, //控制代碼
pdword pdwhandlecount); //控制代碼計數
13、獲取環境塊
dword getenvironmentvariable(
lpctstr lpname, //環境變數的名字
lptstr lpvalue, //存放返回字串的緩衝區
dword cchvalue); //緩衝區的大小
注:返回值為返回字串的長度,當快取不足時返回所需字串的長度
14、設定環境塊
bool setenvironmentvariable(
lpctstr lpname, //環境變數的名字
lpctstr lpvalue); //存放變數值字串的緩衝區
windows核心程式設計 程序
程序定義成乙個正在執行的程式的例項,包含兩個部分 1 乙個核心物件,作業系統用它來管理程序。核心物件也是系統儲存程序統計資訊的地方。2 乙個位址空間,其中包含所有可執行 exe檔案 或dll模組的 和資料。此外,還包括動態記憶體分配,比如執行緒堆疊和堆的分配。windows支援兩種型別的應用程式 g...
windows核心程式設計 程序初步
程序 什麼是程序,系統如何建立乙個核心物件來管理程序。如何通過程序核心物件來操作乙個程序。程序的屬性,以及查詢和修改程序屬性的函式。程序的結束。乙個程序,就是乙個正在執行的程式!乙個程式,可以產生多個程序。程序是死的,程序必須有乙個執行緒!primary thread 如果程序內所有執行緒退出,那麼...
windows 核心程式設計 筆記之 程序
內容 windows程序 process 如上圖所示,windows任務管理器中的程序tab列中列出了系統管理的所有程序,我們經常利用任務管理器來結束某個沒有得到響應的應用程式,但是,作為乙個windows程式設計師,我們應該有這樣的疑問 程序是什麼東西?系統為什麼會存在程序?程序有哪些屬性?程序是...