標籤:amp class log ring 線程 進程式控制制 包含 核心對象 表示
第2章:win32程式運行原理
核心對象:物件控點,標示符,進程相關的,只能被1個進程裡面的其他線程訪問,不透明的,封裝過的。
建立進程:返回STARTUPINFO類型的變數對象,包含了父進程傳遞給子進程的顯示資訊,
STARTUPINFO是一種類類型,和內含的類型是一樣的,
STARTUPINFO si={sizeof(&si)}; //初始化startupinfo的大小::GetStartupinfo(&si); //調用startupinfo對象
建立進程:CreateProcess()函數 ,函數包含了很多的參數
例如開啟notepad
1 STARTUPINFO si={sizeof(&si)}; //新進程的大小,位置,STARTUPINFO類型2 3 PROCESS_INFORMATION pi; //新進程的控制代碼,ID號,PROCESS_INFO類型4 5 char* szCommandLine="notepad";6 7 ::CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi);
類型的匈牙利標記法,首碼標記法
b BOOL
sz string zero(以0結尾的字串)
lp long pointer(長指標)
WINDEF.h裡麵包含了變數類型對應的宏名
DWORD 無符號長整型 unsigned long intWORD 無符號短整型 unsigned short intBOOL 整型 intINT 整型 intBYTE 無符號字元型 unsigned charLPCSTR 常字元指標 const char*LPVOID null 指標 void far
進程式控制制:
0:擷取系統進程: ToolHelp()函數
CreateToolHelp32Snapshot()函數得到當前系統正在啟動並執行進程快照列表
Process32First()和Process32Next()遍曆快照列表
1.終止當前進程:1)當前進程中的一個線程調用了ExitProcess()函數
2)其他進程中的線程調用了TerminateProcess()函數
3)當前進程中的線程都運行完畢
2.終止其他進程:TerminateProcess()函數
3:保護進程:防止當前進程被關閉
HOOK掉其他進程對於當前進程的檢測和終止
檢測:ToolHelp()函數、
終止:TerminateProcess()函數
Windows程式設計筆記1:第2章:win32程式運行原理