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

正文內(nèi)容

操作系統(tǒng)優(yōu)秀課程設(shè)計(jì)-閱讀頁

2025-07-22 14:14本頁面
  

【正文】 /相應(yīng)窗口大小改變的回調(diào)函數(shù)BOOL Dlg_OnSize(HWND hwnd, UINT state, int cx, int cy) { RECT rc。 HWND hwndCtl = GetDlgItem(hwnd, IDC_PROCESSMODULELIST)。rc)。//設(shè)置列表的位置定義樣式為不換行 hwndCtl = GetDlgItem(hwnd, IDC_RESULTS)。 return(0)。 //定義標(biāo)示位是否當(dāng)前顯示為進(jìn)程列表 switch (id) { case IDCANCEL: //響應(yīng)退出 EndDialog(hwnd, id)。 case ID_PROCESSES: //響應(yīng) Process 菜單點(diǎn)擊 s_fProcesses = TRUE。 //將 ID_VMMAP 菜單置為不可用 DrawMenuBar(hwnd)。 //初始化進(jìn)程列表 break。 //設(shè)置 ID_VMMAP 為可用并重繪顯示效果 DrawMenuBar(hwnd)。 將顯示狀態(tài)標(biāo)志位置為非進(jìn)程顯示狀態(tài) Dlg_PopulateModuleList(hwnd)。 case IDC_PROCESSMODULELIST: //響應(yīng)來自列表的消息 if (codeNotify == CBN_SELCHANGE) { //響應(yīng)選擇項(xiàng)發(fā)生變化消息 DWORD dw = ComboBox_GetCurSel(hwndCtl)。 // Process ID ShowProcessInfo(GetDlgItem(hwnd, IDC_RESULTS), dw)。 TCHAR szModulePath[1024]。 ShowModuleInfo(GetDlgItem(hwnd, IDC_RESULTS), szModulePath)。 case ID_VMMAP: //響應(yīng)菜單 ID_VMMAP 點(diǎn)擊的消息 STARTUPINFO si = { sizeof(si) }。 TCHAR szCmdLine[1024]。 DWORD dwProcessId = (DWORD) //該 ComboBox 該選擇項(xiàng)的 Data 就是進(jìn)程的 ID ComboBox_GetItemData(hwndCB, ComboBox_GetCurSel(hwndCB))。 BOOL fOk = CreateProcess(NULL, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, amp。pi)。 CloseHandle()。 } break。 chHANDLE_DLGMSG(hwnd, WM_SIZE, Dlg_OnSize)。 //這里是消息映射 } return(FALSE)。 DialogBox(hinstExe, MAKEINTRESOURCE(IDD_PROCESSINFO), NULL, Dlg_Proc)。 return(0)。///////////////////////////////////////////////////////////////////////////////include ..\ /* See Appendix A. */include include ///////////////////////////////////////////////////////////////////////////////class CToolhelp { //將 ToolHelp 封裝起來private: HANDLE m_hSnapshot。 //構(gòu)造函數(shù) ~CToolhelp()。 // 獲 得 當(dāng) 前 運(yùn) 行 進(jìn) 程 的 快 照 BOOL ProcessFirst(PPROCESSENTRY32 ppe) const。 // 與 ProcessFirst 搭 配 使 用 , 用 來 枚 舉 當(dāng) 前 系 統(tǒng) 快 照 相 關(guān) 的 所 有 進(jìn) 程 。 //尋找進(jìn)程 BOOL ModuleFirst(PMODULEENTRY32 pme) const。 BOOL ModuleFind(PVOID pvBaseAddr, PMODULEENTRY32 pme) const。 BOOL ThreadFirst(PTHREADENTRY32 pte) const。//與 ThreadFirst 搭 配 使 用 , 用 來 枚 舉//當(dāng) 前 進(jìn) 程 的 所 有 線 程 BOOL HeapListFirst(PHEAPLIST32 phl) const。 int HowManyHeaps() const。 //獲得進(jìn)程當(dāng)前所使用的堆棧 BOOL HeapNext(PHEAPENTRY32 phe) const。 //在堆棧中一共有多少個(gè)塊 BOOL IsAHeap(HANDLE hProcess, PVOID pvBlock, PDWORD pdwFlags) const。 //提升/恢復(fù)權(quán)限 static BOOL ReadProcessMemory(DWORD dwProcessID, LPCVOID pvBaseAddress, PVOID pvBuffer, DWORD cbRead, PDWORD pdwNumberOfBytesRead = NULL)。 /////////////////////////////////////////////////////////////////////////////////構(gòu)造函數(shù)初始化新對象inline CToolhelp::CToolhelp(DWORD dwFlags, DWORD dwProcessID) { m_hSnapshot = INVALID_HANDLE_VALUE。}/////////////////////////////////////////////////////////////////////////////////析構(gòu)函數(shù)釋放對象inline CToolhelp::~CToolhelp() { if (m_hSnapshot != INVALID_HANDLE_VALUE) CloseHandle(m_hSnapshot)。 if (dwFlags == 0) { m_hSnapshot = INVALID_HANDLE_VALUE。 } return(m_hSnapshot != INVALID_HANDLE_VALUE)。 // Assume function fails HANDLE hToken。s access token if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, amp。 = 1。[0].Luid)。 // 提權(quán) // 如果不保存先前的權(quán)限狀態(tài),第四個(gè)參數(shù)可以是 NULL AdjustTokenPrivileges(hToken, FALSE, amp。 fOk = (GetLastError() == ERROR_SUCCESS)。 } return(fOk)。 被 讀 取 者     第 二 個(gè) 參 數(shù) 是 遠(yuǎn) 程 進(jìn) 程 中 內(nèi) 存 地 址 。 要 寫 入 多 少     第 五 個(gè) 參 數(shù) 是 實(shí) 際 傳 送 的 字 節(jié) 數(shù) . 函 數(shù) 返 回 時(shí) 報(bào) 告 實(shí) 際 寫 入 多 少*/ return(Toolhelp32ReadProcessMemory(dwProcessID, pvBaseAddress, pvBuffer, cbRead, pdwNumberOfBytesRead))。 if (fOk amp。 (ppeth32ProcessID == 0)) fOk = ProcessNext(ppe)。}inline BOOL CToolhelp::ProcessNext(PPROCESSENTRY32 ppe) const { //與 ProcessFirst 合用獲得所有的進(jìn)程 BOOL fOk = Process32Next(m_hSnapshot, ppe)。amp。 // Remove the [System Process] (PID = 0) return(fOk)。 for (BOOL fOk = ProcessFirst(ppe)。 fOk = ProcessNext(ppe)) { fFound = (ppeth32ProcessID == dwProcessId)。 } return(fFound)。}inline BOOL CToolhelp::ModuleNext(PMODULEENTRY32 pme) const { return(Module32Next(m_hSnapshot, pme))。 for (BOOL fOk = ModuleFirst(pme)。 fOk = ModuleNext(pme)) { fFound = (pmemodBaseAddr == pvBaseAddr)。 } return(fFound)。 for (BOOL fOk = ModuleFirst(pme)。 fOk = ModuleNext(pme)) { fFound = (lstrcmpi(pmeszModule, pszModName) == 0) || (lstrcmpi(pmeszExePath, pszModName) == 0)。 } return(fFound)。}inline BOOL CToolhelp::ThreadNext(PTHREADENTRY32 pte) const { return(Thread32Next(m_hSnapshot, pte))。 HEAPLIST32 hl = { sizeof(hl) }。hl)。 fOk = HeapListNext(amp。 return(nHowManyHeaps)。 HEAPENTRY32 he = { sizeof(he) }。he, dwProcessID, dwHeapID)。 fOk。he)) nHowManyBlocksInHeap++。}inline BOOL CToolhelp::HeapListFirst(PHEAPLIST32 phl) const { return(Heap32ListFirst(m_hSnapshot, phl))。}inline BOOL CToolhelp::HeapFirst(PHEAPENTRY32 phe, DWORD dwProcessID, UINT_PTR dwHeapID) const { return(Heap32First(phe, dwProcessID, dwHeapID))。}inline BOOL CToolhelp::IsAHeap(HANDLE hProcess, PVOID pvBlock, PDWORD pdwFlags) const { HEAPLIST32 hl = { sizeof(hl) }。hl)。 fOkHL = HeapListNext(amp。 BOOL fOkHE = HeapFirst(amp。 for (。 fOkHE = HeapNext(amp。 VirtualQueryEx(hProcess, (PVOID) , amp。 if (chINRANGE(, pvBlock, (PBYTE) + )) { *pdwFlags = 。 } } } return(FALSE)。如 MFC 類 ,Windows 程序設(shè)計(jì)中的一些函數(shù)。代碼的學(xué)習(xí)可以從讀代碼開始,這是一個(gè)學(xué)習(xí)的好方法。API 函數(shù)幾乎包含了 Windows 程序中的所有操作功能,大體上分為三類:a. 窗口管理函數(shù):實(shí)現(xiàn)窗口的創(chuàng)建、移動(dòng)、和修改等功能。c. 系統(tǒng)服務(wù)函數(shù):實(shí)現(xiàn)與操作系統(tǒng)有關(guān)的一些功能。注:Windows 自定義數(shù)據(jù)類型的關(guān)鍵字都要
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1