freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)優(yōu)秀課程設(shè)計(jì)-文庫吧

2025-06-22 14:14 本頁面


【正文】 的名字放入頂部的組合框。然后 ProcessInfo 可以選定第一個(gè)模塊,并顯示關(guān)于它的信息,如圖 22 所示。 圖 21 圖 2 – 2 $ 界面顯示 1 啟動(dòng) exe : 在下拉列表中列出每個(gè)進(jìn)程的名字和 ID。下面則顯示選中的進(jìn)程的具體信息如下圖所以:2 查看暴風(fēng)影音的進(jìn)程和 ID 如下圖:3 選擇 Modules!菜單項(xiàng)。 ProcessInfo 能夠枚舉當(dāng)前通過系統(tǒng)加載的模塊,并將每個(gè)模塊的名字放入頂部的組合框。點(diǎn)擊暴風(fēng)的那一欄 如下圖所示:第三章實(shí)現(xiàn)$ 代碼精讀 /******************************************************************************Module: Notices: Copyright (c) 2022 Jeffrey Richter******************************************************************************/include ..\ /*鏈接時(shí)要換成實(shí)際的路徑 */include //編寫 Windows 程序必須要包含的頭文件include include include include include //應(yīng)用程序要顯示的信息基本都是通過調(diào)用 Toolhelp 的各個(gè)函數(shù)//現(xiàn)的include /////////////////////////////////////////////////////////////////////////////////顯示大文本框中的內(nèi)容void AddText(HWND hwnd, PCTSTR pszFormat, ...) { va_list argList。 //是在 C 語言中解決變參問題的一組宏 va_start(argList, pszFormat)。 /*VA_START 宏初始化變量剛定義的 VA_LIST 變量,//這個(gè)宏的第二個(gè)參數(shù)是第一個(gè)可變參數(shù)的前一個(gè)參數(shù),是一個(gè)固定的參數(shù)。*/ TCHAR sz[20 * 1024]。 Edit_GetText(hwnd, sz, chDIMOF(sz))。 //chDIMOF 是一個(gè)宏define chDIMOF(Array) (sizeof(Array) / sizeof(Array[0])) _vstprintf(_tcschr(sz, 0), pszFormat, argList)。 //格式化字符串到指定內(nèi)存位置_tcschr(sz, 0)sz 中有以 0 為 ASCII 的字符的位置, //pszFormat 為格式,argList 可變參數(shù)列表 Edit_SetText(hwnd, sz)。 va_end(argList)。 //VA_END 宏結(jié)束可變參數(shù)的獲取。然后就可以在函數(shù)里使用第二個(gè)參數(shù)了。 //如果函數(shù)有多個(gè)可變參數(shù)的,依次調(diào)用 VA_ARG 獲取各個(gè)參數(shù)。}/////////////////////////////////////////////////////////////////////////////////更新列表顯示內(nèi)容VOID Dlg_PopulateProcessList(HWND hwnd) { HWND hwndList = GetDlgItem(hwnd, IDC_PROCESSMODULELIST)。 //通過資源 ID 獲取列表框句柄 SetWindowRedraw(hwndList, FALSE)。//禁止重繪ComboBox_ResetContent(hwndList)。 //CB_RESETCONTENT 此消息清空列表所有項(xiàng) CToolhelp thProcesses(TH32CS_SNAPPROCESS)。 //包含了全部系統(tǒng)進(jìn)程信息 PROCESSENTRY32 pe = { sizeof(pe) }。 //PROCESSENTRY32 進(jìn)程入口點(diǎn)信息 BOOL fOk = (amp。pe)。 //將第一個(gè)進(jìn)程的入口點(diǎn)信息存入 pe for (。 fOk。 fOk = (amp。pe)) //遍歷所有進(jìn)程{ TCHAR sz[1024]。 // Place the process name (without its path) amp。 ID in the list //返回文件名所在位置的指針 PCTSTR pszExeFile = _tcsrchr(, TEXT(39。\\39。))。 if (pszExeFile == NULL) pszExeFile = 。 //只有文件名沒路徑的情況下上一句返回空指針 else pszExeFile++。 // Skip over the slash 如果是全路徑的話需要去掉文件名前的斜線 wsprintf(sz, TEXT(%s (0x%08X)), pszExeFile, )。 //格式化到字符串 int n = ComboBox_AddString(hwndList, sz)。 //為列表框添加一個(gè)選項(xiàng)文字返回值是從 0 開始的索引 ComboBox_SetItemData(hwndList, n, )。 //設(shè)置列表框該條記錄的值為 th32ProcessID 方便程序訪問 value } ComboBox_SetCurSel(hwndList, 0)。 // Select the first entry 設(shè)置默認(rèn)顯示的值 FORWARD_WM_COMMAND(hwnd, IDC_PROCESSMODULELIST, hwndList, CBN_SELCHANGE, SendMessage)。 //當(dāng)用戶在 list box of a bo box 中改變選擇項(xiàng)時(shí) Windows 將會(huì)發(fā)送 WPARM//高位為 CBN_SELCHANGE 的 WM_COMMAND 消息 SetWindowRedraw(hwndList, TRUE)。 //設(shè)置列表為可重繪狀態(tài) InvalidateRect(hwndList, NULL, FALSE)。 //使客戶區(qū)域無效為了發(fā)送 WM_Parint 重繪列表框}///////////////////////////////////////////////////////////////////////////////VOID Dlg_PopulateModuleList(HWND hwnd) { HWND hwndModuleHelp = GetDlgItem(hwnd, IDC_MODULEHELP)。 //根據(jù)父窗口句柄和資源 ID 獲取控件句柄 ListBox_ResetContent(hwndModuleHelp)。 CToolhelp thProcesses(TH32CS_SNAPPROCESS)。 //禁止窗體重繪 PROCESSENTRY32 pe = { sizeof(pe) }。 //獲取第一個(gè)進(jìn)程入口點(diǎn)信息存入 pe BOOL fOk = (amp。pe)。 for (。 fOk。 fOk = (amp。pe)) { //獲取進(jìn)程加載模塊的信息 CToolhelp thModules(TH32CS_SNAPMODULE, )。 MODULEENTRY32 me = { sizeof(me) }。 //定義模塊入口點(diǎn)信息并初始化長(zhǎng)度 BOOL fOk = (amp。me)。 //獲取該進(jìn)程第一個(gè)模塊入口點(diǎn)信息并//存入 me for (。 fOk。 fOk = (amp。me)) //循環(huán)獲取模塊入口點(diǎn)信息 //在列表中查找當(dāng)前模塊信息是否已經(jīng)被添加{ int n = ListBox_FindStringExact(hwndModuleHelp, 1, )。 if (n == LB_ERR) { // This module hasn39。t been added before //模塊信息還未被添加則添加 ListBox_AddString(hwndModuleHelp, )。 } } } HWND hwndList = GetDlgItem(hwnd, IDC_PROCESSMODULELIST)。 //獲取進(jìn)程列表框句 SetWindowRedraw(hwndList, FALSE)。 //設(shè)置進(jìn)程列表框?yàn)椴豢芍乩L ComboBox_ResetContent(hwndList)。 int nNumModules = ListBox_GetCount(hwndModuleHelp)。 //獲取當(dāng)前所有已添加的模塊數(shù)量 for (int i = 0。 i nNumModules。 i++) { TCHAR sz[1024]。 ListBox_GetText(hwndModuleHelp, i, sz)。 //循環(huán)獲取模塊信息存儲(chǔ) sz int nIndex = ComboBox_AddString(hwndList, _tcsrchr(sz, TEXT(39。\\39。)) + 1)。 //將模塊名加入 ComboBox ComboBox_SetItemData(hwndList, nIndex, i)。 //設(shè)置索引 // nIndex 的值是不確定的//i 的作用就是 //規(guī)范排序并且將 ComboBox 與 //IDC_MODULEHELP 一一對(duì)應(yīng) } ComboBox_SetCurSel(hwndList, 0)。 // Select the first entry // Simulate the user selecting this first item so that the // results pane shows something interesting FORWARD_WM_COMMAND(hwnd, IDC_PROCESSMODULELIST, hwndList, CBN_SELCHANGE, SendMessage)。 SetWindowRedraw(hwndList, TRUE)。 InvalidateRect(hwndList, NULL, FALSE)。}///////////////////////////////////////////////////////////////////////////////PVOID GetModulePreferredBaseAddr(DWORD dwProcessId, PVOID pvModuleRemote) { PVOID pvModulePreferredBaseAddr = NULL。 IMAGE_DOS_HEADER idh。 IMAGE_NT_HEADERS inth。 // Read the remote module39。s DOS header Toolhelp32ReadProcessMemory(dwProcessId, pvModuleRemote, amp。idh, sizeof(idh), NULL)。 // Verify the DOS image header //e_magic 為 DOS 可執(zhí)行文件標(biāo)記 if ( == IMAGE_DOS_SIGNATURE) { // Read the remote module39。s NT header //e_lfanew 是當(dāng)前 DOS 頭(pvModuleRemote)是相對(duì)實(shí)際 PE 頭標(biāo)的相對(duì)偏移量 Toolhelp32ReadProcessMemory(dwProcessId, (PBYTE) pvModuleRemote + , amp。inth, sizeof(inth), NULL)。 // Verify the NT image header if ( == IMAGE_NT_SIGNATURE) { // This is valid NT header, get the image39。s preferred base address pvModulePreferredBaseAddr = (PVOID) 。
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1