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

正文內(nèi)容

簡述windows進(jìn)程管理工具的原理和實(shí)現(xiàn)(文件)

2024-12-28 00:46 上一頁面

下一頁面
 

【正文】 由了,系統(tǒng)就將自動撤消該進(jìn)程和它的地址空間。如果計算機(jī)擁有多個 CPU,那么操作系 統(tǒng)就要使用復(fù)雜得多的算法來實(shí)現(xiàn) CPU 上線程負(fù)載的平衡。其實(shí)這三大部分是有機(jī)的聯(lián)系在一起的,尤其是性能和進(jìn)程,性能中除了 CPU 使用率以外,其余的數(shù)據(jù)都是由進(jìn)程模塊順便取得的。其調(diào)用方式為: NTSTATUS NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass,PVOID SystemInformation, ULONG SystemInformationLength,PULONG ReturnLength)。 因此,在 此次 進(jìn)程管理器的開發(fā)中, 將使用其它方法來獲取各類信息。 第 6 頁 共 25 頁 設(shè)計思路 在 Visual C++ 環(huán)境設(shè)計一個 基于對話框的應(yīng)用程序,類似于 Windows自帶的任務(wù)管理器,主窗口上添加一個標(biāo)簽控件,加入三個頁面,分別是: 任務(wù)、進(jìn)程和系統(tǒng)性能信息。 3 詳細(xì)設(shè)計 程序主界面如圖 2。首先 創(chuàng)建一個基于對話框的應(yīng)用程序, 在主對話框類 PcsMgrDlg 中添加一個標(biāo)簽控件用于放置任務(wù)、 進(jìn)程 第 7 頁 共 25 頁 和系統(tǒng)信息等三個 頁面 , 如圖 3。 再分別 創(chuàng)建三個對話框的類 CTask ,CProcess, CChart,并定義這三個類的變量: CTask m_Task。 接下來就 創(chuàng)建子窗口 : (IDD_TASK,())。 這樣便可將在個對話框分別顯示于標(biāo)簽控件的每個頁面中,但要實(shí)現(xiàn)選擇標(biāo)簽的不同項(xiàng)顯示不同頁面還需在 OnSelchangeMaintab(NMHDR* pNMHDR,LRESULT* pResult)和 OnSelchangingMaintab(NMHDR* pNMHDR,LRESULT* pResult)兩函數(shù)中添加顯示代碼。 case 1:(SW_SHOW)。 //任務(wù)頁面被選中,則顯示系統(tǒng)信息頁面 ()。 ExitWindowsEx()函數(shù)定義格式: BOOL ExitWindowsEx( UINT uFlags //操作 DWORD dwReason //原因 )。 // 關(guān)機(jī) 在 Windows 2021 實(shí)現(xiàn)“注銷 /重啟 /關(guān)機(jī)”功能須取得高級權(quán)限 : LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,amp。 AdjustTokenPrivileges(hToken,FALSE,amp。 第 9 頁 共 25 頁 RunFileDlg = (RUN)GetProcAddress(hShell32, MAKEINTRESOURCE(61))。 任務(wù)列表頁面設(shè)計 該類實(shí)現(xiàn)當(dāng)前系統(tǒng)運(yùn)行任務(wù)(有可見窗口的程序)的管理,如 查看當(dāng)前任務(wù),添加新任務(wù),結(jié)束任務(wù),切換任 務(wù)等 。 //進(jìn)程 ID DWORD dwThreadID。 獲取窗口標(biāo)題,使用 API 標(biāo)準(zhǔn)函數(shù) GetWindowText (): char temp[MAX_PATH]。 else strRunState = 沒有響應(yīng) 。 = TID。 最后把任務(wù)信息的每一行 在任務(wù)列表 中顯示出來: for(int i=0。 (i,1,str)。//運(yùn)行狀態(tài) } 結(jié)束任務(wù) 結(jié)束任務(wù) 操作將調(diào) 用 SendMessageTimeout 函數(shù)向要關(guān)閉的窗口發(fā)送關(guān)閉消 第 11 頁 共 25 頁 息,如果沒有響應(yīng)則用 TerminateProcess 函數(shù)強(qiáng)行終止該窗口進(jìn)程。 } 切換任務(wù) 我們知道, Windows 9x/2021 中 SetForegroundWindow 函數(shù)當(dāng)用戶正在操作其他窗口時是不能強(qiáng)制某個窗口為前景窗口的,而是激活窗口并調(diào)用FlashWindowEx 函數(shù)來通知用戶。 typedef void (WINAPI *PROCSWITCHTOTHISWINDOW)(HWND,BOOL)。 接下來只要用任何現(xiàn)存窗口的句柄調(diào)用這個函數(shù)即可,參數(shù) bRestore 指定如果窗口極小化,是否恢復(fù)其原狀態(tài)。 第 12 頁 共 25 頁 圖 5 進(jìn)程列表頁面 顯示進(jìn)程信息 進(jìn)程信息包括進(jìn)程圖標(biāo),進(jìn)程名、 進(jìn)程 ID、 CPU 使用率、內(nèi)存使用率、優(yōu)先級、線程數(shù)、 父進(jìn)程 ID 和進(jìn)程路徑等 , 如圖 6。該函數(shù)用于創(chuàng)建一個系統(tǒng)進(jìn)程快照 , 取得 系統(tǒng)中的所有進(jìn)程 的信息 。 PROCESSENTRY32 的定義如下: 第 13 頁 共 25 頁 typedef struct tagPROCESSENTRY32{ DWORD dwSize。 DWORD th32ModuleID。//優(yōu)先級 DWORD dwFlags。該函數(shù)取得快照中下一個進(jìn)程信息,參數(shù)同 Process32First 函數(shù)。部分主要代碼如下: PDH_STATUS pdhStatus。dwctrType,amp。 要得到進(jìn)程的內(nèi)存使用率要用到 GetProcessMemoryInfo,首先在 中定義 WINAPI 函數(shù)類型: GETPROCESSMEMORYINFO GetProcessMemoryInfo。 dwMemoryUse = 。//缺頁數(shù) SIZE_T WorkingSetSize。//最高無頁池使用數(shù) SIZE_T QuotaNonPagedPoolUsage。 顯示模塊及線程信息 模塊信息有模塊名、模塊大小、基地址。me32)。 DWORD th32ProcessID。 DWORD modBaseSize。 }MODULEENTRY32。 hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0)。//取得指定進(jìn)程的第一個線程信息將取得的信息填充到 te32 中。 DWORD th32ThreadID。 DWORD dwFlags。 第 16 頁 共 25 頁 獲取進(jìn)程模塊的過程如圖 8。除了這種進(jìn)程的正常推出方式外,有時還需要在程序中通過代碼來強(qiáng)制結(jié)束本進(jìn)程或其他進(jìn)程的運(yùn)行。該函數(shù)具有強(qiáng)制性,在執(zhí)行完畢后進(jìn)程即已經(jīng)被結(jié)束,因此位于其后的任何代碼將不能被執(zhí)行。 ExitProcess()只能強(qiáng)制執(zhí)行本進(jìn)程的退出,如果要在一個進(jìn)程中強(qiáng)制結(jié)束其他的進(jìn)程就要用 TerminateProcess()來實(shí)現(xiàn)。下面給出 TerminateProcess()的函數(shù)原型: BOOL TerminateProcess(HANDLE hProcess,UINT uExitCode)。 要終止進(jìn)程先要用 OpenProcess 函數(shù)將進(jìn)程打開,然后用 TerminateProcess 函數(shù)結(jié)束進(jìn)程。 圖 9 終止進(jìn)程 刪除文件 當(dāng)發(fā)現(xiàn)進(jìn)程列表中有不正常的程序,如病毒或木馬程序,我們不僅需要把它們結(jié)束了,還需要將對應(yīng)的文件刪除,使其不能再次運(yùn)行。fData)。 系統(tǒng)性能頁面設(shè)計 該頁面 主要顯示 CPU 使用率和內(nèi)存使用率的圖形, 各種內(nèi)存的使用情況,如頁文件,虛擬內(nèi)存,物理內(nèi)存等 ,以及系統(tǒng)當(dāng)前信息,如系統(tǒng) 名、計算機(jī)名、當(dāng)前用戶名等 。MemStat)。 圖 11 內(nèi)存使用率 第 19 頁 共 25 頁 其他性能 顯示 其他性能主要包括物理內(nèi)存、虛擬內(nèi)存和頁文件的使用情況。 GlobalMemoryStatus(amp。在 中定義了 OSVERSIONINFO結(jié)構(gòu), OSVERSIONINFO結(jié)構(gòu)包含了操作系統(tǒng)的版本信息,包括操作系統(tǒng)的主版本號、副版本號、創(chuàng)建號、以及操作系統(tǒng)平臺 ID 號和關(guān)于操作系統(tǒng)的其他信息。 //操作系統(tǒng)的副版本號 DWORD dwBuildNumber。 其中 dwPlatformId 可為以下值: VER_PLATFORM_WIN32s:標(biāo)識為 Windows 。 char Temp[20]。 ::GetUserName(Temp,amp。 DWORD cchBuff = 256。cchBuff)。 打開 Windows 系統(tǒng)自帶的任務(wù)管理器。 在進(jìn)程頁 面中能查看進(jìn)程、進(jìn)程模塊及線程信息;能結(jié)束進(jìn)程,能正確地將當(dāng)前的所有進(jìn)程信息保存到文件中。 第 22 頁 共 25 頁 圖 14 資源使用情況對比圖 結(jié) 論 課題研究設(shè)計的進(jìn)程管理器 能夠顯示任務(wù)信息, 顯示進(jìn)程、線程模塊等信息,能夠結(jié)束任務(wù)、 終止進(jìn)程 ,并能以圖表的形式顯示 CPU、內(nèi)存使用率 ,操作簡單,能基本 滿足用戶對 Windows 進(jìn)程管理 的需求 。通過課題 的 設(shè)計, 鞏固了 以前所學(xué)的基本知識,更學(xué)到了軟件設(shè)計的基本方法、技巧和流程, 這對以后的學(xué)習(xí)工作有很大的幫助。 [4] (美 )Jeffrey Richter. Windows核心編程 [M].北京: 機(jī)械工業(yè) 出版社 ,2021。 [8] 張海棠 . Visual C++ [M].北京: 航空工業(yè) 出版社 ,2021。 [6] (美 )John . Visual C++MFC編程實(shí)例 [M].北京: 機(jī)械工業(yè) 出版社 ,2021。 [2] (美 )Steven Holzner. Visual C++ [M].北京: 電子工業(yè)出版社 ,2021。 通過課題的研究, 得出 一個重要結(jié)論: 在 VC++環(huán)境進(jìn)行 Windows 系統(tǒng)編程,不僅需要熟悉 VC++編程環(huán)境,還需要 熟悉和利用 系統(tǒng)提供給我們的許多編程接口, 即 API 編程,這樣能大大地提高編程效率。 第 21 頁 共 25 頁 圖 12 程序取得的進(jìn)程信息 圖 13 Windows自帶任務(wù)管理器進(jìn)程信息
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1