• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MFC的系統(tǒng)加速器的設(shè)計(jì)與實(shí)現(xiàn)

      2023-06-15 05:26:44曾昱旗黃麗韶
      無(wú)線互聯(lián)科技 2023年2期
      關(guān)鍵詞:操作系統(tǒng)

      曾昱旗 黃麗韶

      摘要:為了提高操作系統(tǒng)的性能,文章提出了一個(gè)基于 MFC 的系統(tǒng)加速器。系統(tǒng)加速器使用 C++ 語(yǔ)言開(kāi)發(fā),在 Windows 7 以上和 VS2015 開(kāi)發(fā)環(huán)境下進(jìn)行。其主要技術(shù)包括窗體標(biāo)題欄重繪,MFC 界面開(kāi)發(fā),垃圾清理,TabControl 面板控件的使用,遍歷文件和調(diào)用系統(tǒng)功能等。實(shí)測(cè)結(jié)果表明,使用該系統(tǒng)加速器可以讓操作系統(tǒng)運(yùn)行更加流暢,不僅占用的控件更小,而且還可以管理一些常用的系統(tǒng)功能。

      關(guān)鍵詞:MFC;系統(tǒng)加速器;操作系統(tǒng);垃圾清理

      中圖分類號(hào):TN711? 文獻(xiàn)標(biāo)志碼:A

      1 背景及意義

      隨著互聯(lián)網(wǎng)和硬件技術(shù)的飛速發(fā)展,Windows操作系統(tǒng)的功能越來(lái)越強(qiáng),操作越來(lái)越簡(jiǎn)單[1]??墒请S著大型軟件的使用,系統(tǒng)的運(yùn)行速度也越來(lái)越慢[2]。就目前最流行的 Windows 10而言,很多人嘗試了各種辦法來(lái)加速運(yùn)行時(shí)間,使用各種優(yōu)化技巧或者軟件加速啟動(dòng)過(guò)程[3-4]。系統(tǒng)加速器就是典型的軟件加速啟動(dòng)過(guò)程。其主要特點(diǎn):支持優(yōu)化性能,關(guān)閉后臺(tái)應(yīng)用程序和清理臨時(shí)內(nèi)存后提高運(yùn)用速度;支持卸載不需要/不常用的應(yīng)用程序,釋放內(nèi)存和系統(tǒng)資源;支持在主界面中或通過(guò)窗口小部件一鍵優(yōu)化系統(tǒng)速度;支持優(yōu)化內(nèi)存,清理應(yīng)用程序緩存和內(nèi)存數(shù)據(jù)。本文在此背景下設(shè)計(jì)開(kāi)發(fā)了一款系統(tǒng)加速器以提高系統(tǒng)的運(yùn)行效率。

      2 系統(tǒng)功能設(shè)計(jì)

      2.1 開(kāi)發(fā)細(xì)節(jié)

      本文設(shè)計(jì)的系統(tǒng)加速器的開(kāi)發(fā)細(xì)節(jié)如圖1所示。

      2.2 系統(tǒng)功能結(jié)構(gòu)

      一般情況下系統(tǒng)的總功能可分解為若干分功能,

      圖1 系統(tǒng)加速器相關(guān)開(kāi)發(fā)細(xì)節(jié)各分功能又可進(jìn)一步分解為若干二級(jí)分功能,如此繼續(xù),直至各分功能被分解為功能單元為止。這種由分功能或功能單元按照其邏輯關(guān)系連成的結(jié)構(gòu)稱為功能結(jié)構(gòu)。分功能或功能單元的相互關(guān)系可以用圖來(lái)描述,表達(dá)分功能或功能單元相互關(guān)系或從屬關(guān)系的圖稱為功能結(jié)構(gòu)圖。本設(shè)計(jì)的系統(tǒng)加速器的功能結(jié)構(gòu),如圖2所示。

      2.3 系統(tǒng)開(kāi)發(fā)環(huán)境要求

      開(kāi)發(fā)系統(tǒng)加速器之前,本地計(jì)算機(jī)需要滿足以下條件:開(kāi)發(fā)環(huán)境為Visual Studio 2015免費(fèi)社區(qū)版;開(kāi)發(fā)語(yǔ)言為C++,MFC和Win32API;開(kāi)發(fā)環(huán)境運(yùn)行平臺(tái)為Windows7(SP1)以上。

      3 關(guān)鍵技術(shù)

      3.1 自繪標(biāo)題欄

      為了使模塊更美觀,本文通過(guò)窗口設(shè)備上下文重新繪制了窗體標(biāo)題欄,使窗體的標(biāo)題欄和重繪的位圖背景可以更好地搭配在一起。重繪窗體標(biāo)題欄的步驟如下:

      (1)設(shè)置對(duì)話框?qū)傩?。打開(kāi)對(duì)話框資源的屬性窗口,勾選相關(guān)屬性,使對(duì)話框具有標(biāo)題欄,去掉相關(guān)屬性,在對(duì)話框標(biāo)題欄中不顯示關(guān)閉按鈕。

      (2)在對(duì)話框頭文件中聲明常量和變量,再定義一個(gè)枚舉類型來(lái)保存按鈕狀態(tài),并在對(duì)話框的構(gòu)造函數(shù)中初始化變量。

      (3)添加自定義函數(shù)DrawCaption(),使用該函數(shù)繪制窗體標(biāo)題文本。添加自定義函數(shù)DrawDialog(),該函數(shù)用于繪制窗體標(biāo)題欄以及標(biāo)題欄按鈕。

      (4)處理對(duì)話框消息。在消息的處理函數(shù)中繪制工具欄按鈕。當(dāng)鼠標(biāo)移動(dòng)到標(biāo)題欄按鈕上時(shí),繪制標(biāo)題欄按鈕的熱點(diǎn)效果;在鼠標(biāo)離開(kāi)標(biāo)題欄按鈕時(shí),恢復(fù)標(biāo)題欄按鈕原來(lái)的效果。

      (5)處理對(duì)話框的消息。在消息的處理函數(shù)中重繪標(biāo)題欄,再次處理對(duì)話框的消息,在消息的處理函數(shù)中相應(yīng)標(biāo)題欄按鈕的鼠標(biāo)單擊事件。

      (6)處理對(duì)話框的非客戶區(qū)激活消息。在消息表示“窗口的非客戶區(qū)被激活”,在消息的處理函數(shù)中重繪窗口。

      (7)在對(duì)話框的方法中調(diào)用DrawDialog函數(shù)繪制標(biāo)題欄。核心代碼如下:

      Void CSysOptimizeDlg::OnPaint()

      {

      DrawDialog(fAll);

      m_IsDrawForm = TRUE;

      }

      在標(biāo)題欄自繪的設(shè)計(jì)中,只包含標(biāo)題欄的名稱、右上角的最大/最小按鈕和關(guān)閉按鈕,并沒(méi)有采用位圖作為背景。因此,本文的設(shè)計(jì)不會(huì)降低標(biāo)題欄的加載速度,更不會(huì)增加系統(tǒng)的負(fù)擔(dān)。

      3.2 獲取任務(wù)列表和正在運(yùn)行的進(jìn)程

      在系統(tǒng)任務(wù)管理模塊中需要顯示當(dāng)前正在運(yùn)行的任務(wù)列表。本文主要通過(guò)遍歷當(dāng)前所有窗口,判斷窗口是否為頂層窗口,如果為頂層窗口則表示為應(yīng)用程序的主窗口,將其添加到列表框中。可以通過(guò)API的相關(guān)函數(shù)獲取窗口句柄。在系統(tǒng)任務(wù)管理模塊的進(jìn)程選項(xiàng)卡中,需要顯示當(dāng)前正在運(yùn)行的所有進(jìn)程,可以通過(guò)相關(guān)函數(shù)對(duì)當(dāng)前系統(tǒng)中進(jìn)程生成快照。

      獲取任務(wù)列表必須明確當(dāng)前窗口與句柄窗口之間的關(guān)系,尤其要指明兄弟窗口的第一個(gè)、最后一個(gè)、上一個(gè)還是下一個(gè)窗口。設(shè)計(jì)獲取正在運(yùn)行的進(jìn)程時(shí),需要將快照句柄進(jìn)行繼承,指定進(jìn)程堆列表、進(jìn)程模塊列表的快照及進(jìn)程的ID值。

      3.3 清空操作

      在磁盤空間整理模塊中,用戶可以選擇清空系統(tǒng)回收站以釋放磁盤空間,通過(guò)相關(guān)函數(shù)來(lái)實(shí)現(xiàn)清空回收站的功能。其核心代碼如下:

      SHSTDAPI SHEmptyRecycleBin(HWND hwnd, LPCTSTR pszRootPath, DWORD dwFlags)。

      在“開(kāi)始”菜單中的“運(yùn)行”菜單項(xiàng)中,保存著最近執(zhí)行過(guò)運(yùn)行命令的歷史記錄,可以通過(guò)修改注冊(cè)表實(shí)現(xiàn)在推出Windows系統(tǒng)時(shí)清除“運(yùn)行”菜單項(xiàng)中的歷史記錄。需要修改的注冊(cè)表項(xiàng),在注冊(cè)表項(xiàng)下建立一個(gè)二進(jìn)制鍵值,設(shè)置其值為“01 00 00 00”。

      在磁盤空間整理模塊中,包含清空IE歷史記錄選項(xiàng),用戶可以選擇清空IE歷史記錄。注冊(cè)表項(xiàng)存儲(chǔ)中10條瀏覽過(guò)的網(wǎng)址信息,可以通過(guò)相關(guān)函數(shù)刪除該注冊(cè)表項(xiàng)來(lái)清空上網(wǎng)歷史記錄。

      在此清空操作設(shè)計(jì)中,最開(kāi)始僅使用文件遍歷,其執(zhí)行效率上遠(yuǎn)遠(yuǎn)達(dá)不到要求,但在加上多線程后,清空操作速度有顯著提高。

      3.4 調(diào)用控制面板工具

      在控制面板操作模塊中,用戶可以調(diào)用常用的控制面板工具,要實(shí)現(xiàn)這個(gè)功能,可以使用相關(guān)函數(shù)實(shí)現(xiàn)。核心代碼如下:

      void CContralDlg::OnButinternet()

      {

      ::ShellExecute(NULL, “OPEN”, “rundll32.exe”, “shell32.dll Control_RunDLL inetcpl.cpl”, NULL,SW_SHOW);

      }

      在調(diào)用控制面板相關(guān)設(shè)置對(duì)話框時(shí),主要執(zhí)行rundll32.exe程序。例如,打開(kāi)IE設(shè)置窗口,可以選擇開(kāi)始/運(yùn)行菜單命令,在“打開(kāi)”文本框中輸入shell語(yǔ)句完成控制面板的調(diào)用。

      3.5 主窗體設(shè)計(jì)

      3.5.1 繪制主窗口背景圖片

      初始的對(duì)話框窗口背景為灰色,其實(shí)現(xiàn)原理是系統(tǒng)自動(dòng)提供一個(gè)默認(rèn)畫(huà)刷,每次繪畫(huà)時(shí)使用這個(gè)灰色的畫(huà)刷。如果想改變這個(gè)背景,只需要替換畫(huà)刷。具體實(shí)現(xiàn)步驟如下:添加相關(guān)消息處理函數(shù),在該消息的處理函數(shù)中,繪制主窗體的背景位圖并設(shè)置靜態(tài)文本控件透明顯示。

      3.5.2 主窗體界面預(yù)覽與布局

      在系統(tǒng)優(yōu)化模塊的主窗體中,包含調(diào)用各子模塊的導(dǎo)航按鈕,用戶可以方便地使用模塊進(jìn)行操作。系統(tǒng)優(yōu)化模塊主窗體的界面設(shè)計(jì)過(guò)程如下:創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序;向工程中導(dǎo)入位圖資源,修改位圖ID;向?qū)υ捒蛑刑砑涌丶?個(gè)圖片控件和4個(gè)靜態(tài)文本控件。

      3.5.3 實(shí)現(xiàn)子窗口切換功能

      本程序的主要功能集中在4個(gè)子窗口中,主窗口左下方有4個(gè)圖片按鈕,點(diǎn)擊不同的圖片出現(xiàn)相應(yīng)的子窗口,再通過(guò)子窗口選擇相關(guān)功能。子窗口切換的實(shí)現(xiàn)步驟如下:(1)在主窗體的頭文件中聲明調(diào)用的各個(gè)模塊對(duì)象;(2)在主窗口的相關(guān)方法中創(chuàng)建系統(tǒng)任務(wù)管理模塊,并獲取工具欄按鈕位圖的大小;(3)添加自定義函數(shù)用于顯示相應(yīng)的模塊;(4)添加自定義函數(shù)用于銷毀各個(gè)模塊;(5)處理“控制面板操作”靜態(tài)文本控件的單擊事件,在該事件的處理函數(shù)中調(diào)用控制面板操作模塊,并設(shè)置選中效果;(6)添加主窗體的相關(guān)消息處理函數(shù),在消息的處理函數(shù)中關(guān)閉當(dāng)前顯示的模塊,退出程序。在此子窗口切換功能的設(shè)計(jì)中,圖片點(diǎn)擊事件處理和子窗口的創(chuàng)建與銷毀都是通過(guò)調(diào)用MFC中相應(yīng)的函數(shù)實(shí)現(xiàn)。

      3.6 磁盤空間整理模塊

      在磁盤空間整理模塊中,用戶可以選擇要清除的項(xiàng)目,包括“清空回收站”“清空臨時(shí)文件”等項(xiàng)目,再單擊“清理”按鈕進(jìn)行清除。磁盤空間整理模塊的功能實(shí)現(xiàn)過(guò)程如下:(1)在磁盤空間整理模塊的相關(guān)方法中,設(shè)置列表視圖控件的風(fēng)格和列標(biāo)題,并向列表中插入數(shù)據(jù),設(shè)置控件字體;(2)處理復(fù)選框的單擊事件,在該事件的處理函數(shù)中設(shè)置復(fù)選框全選或全不選;(3)添加自定義函數(shù),用于清理用戶選中的項(xiàng)目;(4)添加相關(guān)函數(shù)用于遞歸刪除文件。

      最初設(shè)計(jì)磁盤空間整理部分時(shí),采用循環(huán)方法,整理效率較低。經(jīng)過(guò)不斷調(diào)試,采用遞歸方法后,效率明顯提高。整理時(shí),還須注意采用刪除、替換的方式進(jìn)行,這是本文設(shè)計(jì)的系統(tǒng)加速器的優(yōu)勢(shì)所在。

      3.7 垃圾文件清理模塊

      在垃圾文件清理模塊中,用戶可以選擇要清除的垃圾文件磁盤,并通過(guò)“選項(xiàng)”按鈕設(shè)置垃圾文件類型,單擊“開(kāi)始”按鈕執(zhí)行清理垃圾文件的操作。清理的文件將顯示在列表中,單擊“停止”按鈕可以停止清理垃圾文件的操作。垃圾文件清理模塊的功能實(shí)現(xiàn)過(guò)程如下:(1)在垃圾文件清理模塊的相關(guān)方法中獲取系統(tǒng)驅(qū)動(dòng)器盤符并將盤符插入到組合框中;(2)添加自定義函數(shù)用于刪除指定磁盤的垃圾文件;(3)添加自定義函數(shù)用于遞歸刪除垃圾文件;(4)處理“開(kāi)始”按鈕的單擊事件,調(diào)用線程函數(shù)清理垃圾文件;(5)處理“停止”按鈕的單擊事件,終止線程。

      在垃圾文件清理的設(shè)計(jì)中,對(duì)話框控件包括:1個(gè)靜態(tài)文本控件、1個(gè)列表框控件、1個(gè)組合框控件和3個(gè)按鈕控件。每個(gè)控件要注意關(guān)聯(lián)相關(guān)的變量,比如組合框控件關(guān)聯(lián)組合變量。

      3.8 系統(tǒng)任務(wù)管理模塊

      系統(tǒng)任務(wù)管理模塊中包含一個(gè)選項(xiàng)卡,用戶可以選擇查看當(dāng)前運(yùn)行的程序或進(jìn)程,選擇“窗口”選項(xiàng)卡則顯示當(dāng)前運(yùn)行程序,選擇“進(jìn)程”選項(xiàng)卡則顯示正在運(yùn)行的進(jìn)程。系統(tǒng)任務(wù)管理模塊的實(shí)現(xiàn)過(guò)程如下:在系統(tǒng)任務(wù)管理模塊的相關(guān)方法中,設(shè)置標(biāo)簽頁(yè)和列表視圖控件的屬性;添加自定義函數(shù)用來(lái)設(shè)置列表視圖控件的顯示內(nèi)容;處理標(biāo)簽控件的TCN_SELCHANGE事件,在該事件的處理函數(shù)中調(diào)用相關(guān)函數(shù)設(shè)置列表顯示內(nèi)容。

      此過(guò)程的設(shè)計(jì)包括進(jìn)程和窗口的遍歷及進(jìn)程的打開(kāi)與結(jié)束。特別注意,設(shè)計(jì)時(shí)要及時(shí)獲取進(jìn)程ID、線程數(shù)量和優(yōu)先級(jí)別。本文在設(shè)計(jì)時(shí),多次調(diào)試了加載動(dòng)態(tài)庫(kù)過(guò)程。加載動(dòng)態(tài)庫(kù)要注意,在遍歷窗口時(shí),只有在窗口非空時(shí)才存放到列表中。若沒(méi)有對(duì)窗口是否為空進(jìn)行判斷,則會(huì)降低系統(tǒng)效率。

      4 結(jié)語(yǔ)

      本文詳細(xì)闡述一個(gè)系統(tǒng)加速器的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)加速器包含主界面、控制面板操作、磁盤空間整理、垃圾文件清理和系統(tǒng)任務(wù)管理模塊。通過(guò)該系統(tǒng)加速器可以釋放關(guān)鍵的CPU資源,找出拖慢系統(tǒng)速度的元兇,優(yōu)化設(shè)備運(yùn)行速度。經(jīng)過(guò)測(cè)試,該加速器具備以下特點(diǎn):(1)可清理所有瀏覽器,搜索歷史、地圖數(shù)據(jù)歷史、gmail歷史、本文信息、視頻、圖片信息、通話記錄、谷歌市場(chǎng)歷史等;(2)可結(jié)束所有應(yīng)用程序進(jìn)程;(3)可清理所有殘留垃圾文件;(4)可提高內(nèi)存運(yùn)用空間;(5)可清理應(yīng)用程序、所有緩存,優(yōu)化空間和恢復(fù)內(nèi)存速度;(6)可刪除應(yīng)用程序。

      參考文獻(xiàn)

      [1]宋鶴鳴.智能語(yǔ)音系統(tǒng)加速器設(shè)計(jì)[D].上海:上海交通大學(xué),2019.

      [2]向隆.基于CPU-GPU系統(tǒng)加速精準(zhǔn)內(nèi)積檢索[D].哈爾濱:哈爾濱工業(yè)大學(xué),2019.

      [3]沈國(guó)新,張德學(xué),王桂海,等.一種實(shí)時(shí)操作系統(tǒng)硬件加速設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2010(6):17-19.

      [4]陳程,張磊,楊靜遠(yuǎn).嵌入式操作系統(tǒng)初始化代碼執(zhí)行提速方法[J].信息技術(shù)與信息化,2021(7):87-89.

      (編輯 姚 鑫)

      Design and implementation of system accelerator based on MFC

      Zeng? Yuqi, Huang? Lishao

      (College of Information Engineering, Hunan University of Science and Engineering, Yongzhou 425199, China)

      Abstract: In order to improve the performance of operating system, a system accelerator based on MFC is designed and implemented in this paper. The system accelerator uses C++ language for development, Windows7 and VS2015 as the development environment, mainly used technology including form title bar redraw, MFC interface development, garbage cleaning, TabControl panel control use, traversing files and call system functions. Finally through the test, using the system accelerator can make the operating system run more smoothly, occupy smaller controls, but also can manage some common functions of the system.

      Key words: MFC; system accelerator; operating system; cleaning

      猜你喜歡
      操作系統(tǒng)
      智能手機(jī)操作系統(tǒng)的分析與比較
      卷宗(2016年10期)2017-01-21 14:04:15
      國(guó)產(chǎn)桌面操作系統(tǒng)中虛擬化技術(shù)應(yīng)用研究
      計(jì)算機(jī)維護(hù)中操作系統(tǒng)還原技術(shù)的分析
      對(duì)計(jì)算機(jī)進(jìn)行操作系統(tǒng)重裝的維護(hù)
      操作系統(tǒng)實(shí)踐教學(xué)改革探索
      基于虛擬機(jī)(VMware)的實(shí)驗(yàn)平臺(tái)構(gòu)建
      基于單片機(jī)的嵌入式系統(tǒng)的開(kāi)發(fā)研究
      計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題研究
      “操作系統(tǒng)原理”實(shí)驗(yàn)教學(xué)設(shè)置初探
      高校操作系統(tǒng)課程教學(xué)改革的研究與實(shí)踐
      定南县| 万源市| 合山市| 桐城市| 兴安盟| 革吉县| 靖江市| 温州市| 东光县| 安康市| 襄樊市| 河津市| 岚皋县| 邳州市| 麦盖提县| 上高县| 和平区| 西青区| 蕲春县| 盖州市| 南宁市| 西盟| 星子县| 澄城县| 故城县| 安庆市| 扶余县| 富顺县| 格尔木市| 佳木斯市| 琼海市| 越西县| 宜君县| 廉江市| 奉节县| 华坪县| 通渭县| 尖扎县| 江城| 沙田区| 银川市|