999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MFC的系統加速器的設計與實現

2023-06-15 05:26:44曾昱旗黃麗韶
無線互聯科技 2023年2期

曾昱旗 黃麗韶

摘要:為了提高操作系統的性能,文章提出了一個基于 MFC 的系統加速器。系統加速器使用 C++ 語言開發,在 Windows 7 以上和 VS2015 開發環境下進行。其主要技術包括窗體標題欄重繪,MFC 界面開發,垃圾清理,TabControl 面板控件的使用,遍歷文件和調用系統功能等。實測結果表明,使用該系統加速器可以讓操作系統運行更加流暢,不僅占用的控件更小,而且還可以管理一些常用的系統功能。

關鍵詞:MFC;系統加速器;操作系統;垃圾清理

中圖分類號:TN711? 文獻標志碼:A

1 背景及意義

隨著互聯網和硬件技術的飛速發展,Windows操作系統的功能越來越強,操作越來越簡單[1]。可是隨著大型軟件的使用,系統的運行速度也越來越慢[2]。就目前最流行的 Windows 10而言,很多人嘗試了各種辦法來加速運行時間,使用各種優化技巧或者軟件加速啟動過程[3-4]。系統加速器就是典型的軟件加速啟動過程。其主要特點:支持優化性能,關閉后臺應用程序和清理臨時內存后提高運用速度;支持卸載不需要/不常用的應用程序,釋放內存和系統資源;支持在主界面中或通過窗口小部件一鍵優化系統速度;支持優化內存,清理應用程序緩存和內存數據。本文在此背景下設計開發了一款系統加速器以提高系統的運行效率。

2 系統功能設計

2.1 開發細節

本文設計的系統加速器的開發細節如圖1所示。

2.2 系統功能結構

一般情況下系統的總功能可分解為若干分功能,

圖1 系統加速器相關開發細節各分功能又可進一步分解為若干二級分功能,如此繼續,直至各分功能被分解為功能單元為止。這種由分功能或功能單元按照其邏輯關系連成的結構稱為功能結構。分功能或功能單元的相互關系可以用圖來描述,表達分功能或功能單元相互關系或從屬關系的圖稱為功能結構圖。本設計的系統加速器的功能結構,如圖2所示。

2.3 系統開發環境要求

開發系統加速器之前,本地計算機需要滿足以下條件:開發環境為Visual Studio 2015免費社區版;開發語言為C++,MFC和Win32API;開發環境運行平臺為Windows7(SP1)以上。

3 關鍵技術

3.1 自繪標題欄

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

(1)設置對話框屬性。打開對話框資源的屬性窗口,勾選相關屬性,使對話框具有標題欄,去掉相關屬性,在對話框標題欄中不顯示關閉按鈕。

(2)在對話框頭文件中聲明常量和變量,再定義一個枚舉類型來保存按鈕狀態,并在對話框的構造函數中初始化變量。

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

(4)處理對話框消息。在消息的處理函數中繪制工具欄按鈕。當鼠標移動到標題欄按鈕上時,繪制標題欄按鈕的熱點效果;在鼠標離開標題欄按鈕時,恢復標題欄按鈕原來的效果。

(5)處理對話框的消息。在消息的處理函數中重繪標題欄,再次處理對話框的消息,在消息的處理函數中相應標題欄按鈕的鼠標單擊事件。

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

(7)在對話框的方法中調用DrawDialog函數繪制標題欄。核心代碼如下:

Void CSysOptimizeDlg::OnPaint()

{

DrawDialog(fAll);

m_IsDrawForm = TRUE;

}

在標題欄自繪的設計中,只包含標題欄的名稱、右上角的最大/最小按鈕和關閉按鈕,并沒有采用位圖作為背景。因此,本文的設計不會降低標題欄的加載速度,更不會增加系統的負擔。

3.2 獲取任務列表和正在運行的進程

在系統任務管理模塊中需要顯示當前正在運行的任務列表。本文主要通過遍歷當前所有窗口,判斷窗口是否為頂層窗口,如果為頂層窗口則表示為應用程序的主窗口,將其添加到列表框中。可以通過API的相關函數獲取窗口句柄。在系統任務管理模塊的進程選項卡中,需要顯示當前正在運行的所有進程,可以通過相關函數對當前系統中進程生成快照。

獲取任務列表必須明確當前窗口與句柄窗口之間的關系,尤其要指明兄弟窗口的第一個、最后一個、上一個還是下一個窗口。設計獲取正在運行的進程時,需要將快照句柄進行繼承,指定進程堆列表、進程模塊列表的快照及進程的ID值。

3.3 清空操作

在磁盤空間整理模塊中,用戶可以選擇清空系統回收站以釋放磁盤空間,通過相關函數來實現清空回收站的功能。其核心代碼如下:

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

在“開始”菜單中的“運行”菜單項中,保存著最近執行過運行命令的歷史記錄,可以通過修改注冊表實現在推出Windows系統時清除“運行”菜單項中的歷史記錄。需要修改的注冊表項,在注冊表項下建立一個二進制鍵值,設置其值為“01 00 00 00”。

在磁盤空間整理模塊中,包含清空IE歷史記錄選項,用戶可以選擇清空IE歷史記錄。注冊表項存儲中10條瀏覽過的網址信息,可以通過相關函數刪除該注冊表項來清空上網歷史記錄。

在此清空操作設計中,最開始僅使用文件遍歷,其執行效率上遠遠達不到要求,但在加上多線程后,清空操作速度有顯著提高。

3.4 調用控制面板工具

在控制面板操作模塊中,用戶可以調用常用的控制面板工具,要實現這個功能,可以使用相關函數實現。核心代碼如下:

void CContralDlg::OnButinternet()

{

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

}

在調用控制面板相關設置對話框時,主要執行rundll32.exe程序。例如,打開IE設置窗口,可以選擇開始/運行菜單命令,在“打開”文本框中輸入shell語句完成控制面板的調用。

3.5 主窗體設計

3.5.1 繪制主窗口背景圖片

初始的對話框窗口背景為灰色,其實現原理是系統自動提供一個默認畫刷,每次繪畫時使用這個灰色的畫刷。如果想改變這個背景,只需要替換畫刷。具體實現步驟如下:添加相關消息處理函數,在該消息的處理函數中,繪制主窗體的背景位圖并設置靜態文本控件透明顯示。

3.5.2 主窗體界面預覽與布局

在系統優化模塊的主窗體中,包含調用各子模塊的導航按鈕,用戶可以方便地使用模塊進行操作。系統優化模塊主窗體的界面設計過程如下:創建一個基于對話框的應用程序;向工程中導入位圖資源,修改位圖ID;向對話框中添加控件,包括2個圖片控件和4個靜態文本控件。

3.5.3 實現子窗口切換功能

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

3.6 磁盤空間整理模塊

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

最初設計磁盤空間整理部分時,采用循環方法,整理效率較低。經過不斷調試,采用遞歸方法后,效率明顯提高。整理時,還須注意采用刪除、替換的方式進行,這是本文設計的系統加速器的優勢所在。

3.7 垃圾文件清理模塊

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

在垃圾文件清理的設計中,對話框控件包括:1個靜態文本控件、1個列表框控件、1個組合框控件和3個按鈕控件。每個控件要注意關聯相關的變量,比如組合框控件關聯組合變量。

3.8 系統任務管理模塊

系統任務管理模塊中包含一個選項卡,用戶可以選擇查看當前運行的程序或進程,選擇“窗口”選項卡則顯示當前運行程序,選擇“進程”選項卡則顯示正在運行的進程。系統任務管理模塊的實現過程如下:在系統任務管理模塊的相關方法中,設置標簽頁和列表視圖控件的屬性;添加自定義函數用來設置列表視圖控件的顯示內容;處理標簽控件的TCN_SELCHANGE事件,在該事件的處理函數中調用相關函數設置列表顯示內容。

此過程的設計包括進程和窗口的遍歷及進程的打開與結束。特別注意,設計時要及時獲取進程ID、線程數量和優先級別。本文在設計時,多次調試了加載動態庫過程。加載動態庫要注意,在遍歷窗口時,只有在窗口非空時才存放到列表中。若沒有對窗口是否為空進行判斷,則會降低系統效率。

4 結語

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

參考文獻

[1]宋鶴鳴.智能語音系統加速器設計[D].上海:上海交通大學,2019.

[2]向隆.基于CPU-GPU系統加速精準內積檢索[D].哈爾濱:哈爾濱工業大學,2019.

[3]沈國新,張德學,王桂海,等.一種實時操作系統硬件加速設計[J].微型機與應用,2010(6):17-19.

[4]陳程,張磊,楊靜遠.嵌入式操作系統初始化代碼執行提速方法[J].信息技術與信息化,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

主站蜘蛛池模板: 久久夜夜视频| 亚洲AV无码久久精品色欲| 国产精品一区二区在线播放| 999在线免费视频| 热久久这里是精品6免费观看| 77777亚洲午夜久久多人| 狠狠色噜噜狠狠狠狠奇米777 | 国产国产人成免费视频77777| 国产精品国产主播在线观看| 第一页亚洲| 99ri精品视频在线观看播放| 国产色婷婷| 尤物特级无码毛片免费| 亚洲精品制服丝袜二区| 国产99在线| 欧美一区精品| 999福利激情视频| 欧洲av毛片| 中文国产成人精品久久| 亚洲国产欧美自拍| 国产福利免费视频| 午夜精品久久久久久久无码软件| 亚洲欧美精品一中文字幕| 亚洲免费三区| 欧美亚洲综合免费精品高清在线观看| 又爽又大又黄a级毛片在线视频| 在线毛片免费| 午夜毛片免费观看视频 | 欲色天天综合网| 青青极品在线| 97se亚洲综合| 国内精品自在欧美一区| 国产亚洲精品在天天在线麻豆| 亚洲成人网在线播放| 黄色网址免费在线| 亚洲最新地址| 亚洲人妖在线| 好吊妞欧美视频免费| 91精品视频播放| 黄色网页在线播放| 成人在线综合| 美女视频黄频a免费高清不卡| 国产精品自拍露脸视频| 久久96热在精品国产高清| 中文字幕天无码久久精品视频免费| 免费va国产在线观看| 五月婷婷欧美| 国产99视频精品免费视频7| 欧美v在线| 欧美日韩动态图| 91精品啪在线观看国产60岁| 亚洲日本韩在线观看| 国产乱码精品一区二区三区中文 | 日韩精品专区免费无码aⅴ| 国产亚洲视频在线观看| 黄片一区二区三区| 亚洲一区毛片| 亚洲综合婷婷激情| 亚洲国产综合精品一区| 日本国产精品| 免费无遮挡AV| 国产美女91呻吟求| 国产精品毛片一区视频播| 91色在线观看| 伊人久久婷婷| 国产毛片基地| 97久久超碰极品视觉盛宴| 久久夜色撩人精品国产| 国产亚洲美日韩AV中文字幕无码成人| 国产亚洲欧美日本一二三本道| 深爱婷婷激情网| 国产高清在线精品一区二区三区 | 99热最新在线| 日韩小视频网站hq| 91久久国产成人免费观看| 欧美日韩精品一区二区在线线| 国产高清毛片| 真人免费一级毛片一区二区| 亚洲中久无码永久在线观看软件| 亚洲精品午夜天堂网页| 国产成人综合亚洲欧美在| 国产91麻豆免费观看|