操作系統(tǒng)課程設(shè)計(jì)報(bào)告完成版_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告完成版_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告完成版_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告完成版_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告完成版_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

XX大學(xué)課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:Windows系統(tǒng)資源管理器與任務(wù)管理器學(xué)院:專(zhuān)業(yè)班級(jí):年級(jí):2008級(jí)姓名:學(xué)號(hào):完成時(shí)間:2012年7月3日成績(jī):指導(dǎo)教師: 教務(wù)處課程設(shè)計(jì)指導(dǎo)教師評(píng)定成績(jī)表項(xiàng)目分值優(yōu)秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)評(píng)分參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)學(xué)習(xí)態(tài)度15學(xué)習(xí)態(tài)度認(rèn)真,科學(xué)作風(fēng)嚴(yán)謹(jǐn),嚴(yán)格保證設(shè)計(jì)時(shí)間并按任務(wù)書(shū)中規(guī)定的進(jìn)度開(kāi)展各項(xiàng)工作學(xué)習(xí)態(tài)度比較認(rèn)真,科學(xué)作風(fēng)良好,能按期圓滿(mǎn)完成任務(wù)書(shū)規(guī)定的任務(wù)學(xué)習(xí)態(tài)度尚好,遵守組織紀(jì)律,基本保證設(shè)計(jì)時(shí)間,按期完成各項(xiàng)工作學(xué)習(xí)態(tài)度尚可,能遵守組織紀(jì)律,能按期完成任務(wù)學(xué)習(xí)馬虎,紀(jì)律渙散,工作作風(fēng)不嚴(yán)謹(jǐn),不能保證設(shè)計(jì)時(shí)間和進(jìn)度技術(shù)水平與實(shí)際能力25設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確,有很強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)查閱能力強(qiáng)、引用合理、調(diào)查調(diào)研非常合理、可信設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有較強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)引用、調(diào)查調(diào)研比較合理、可信設(shè)計(jì)合理,理論分析與計(jì)算基本正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有一定的實(shí)際動(dòng)手能力,主要文獻(xiàn)引用、調(diào)查調(diào)研比較可信設(shè)計(jì)基本合理,理論分析與計(jì)算無(wú)大錯(cuò),實(shí)驗(yàn)數(shù)據(jù)無(wú)大錯(cuò)設(shè)計(jì)不合理,理論分析與計(jì)算有原則錯(cuò)誤,實(shí)驗(yàn)數(shù)據(jù)不可靠,實(shí)際動(dòng)手能力差,文獻(xiàn)引用、調(diào)查調(diào)研有較大的問(wèn)題創(chuàng)新10有重大改進(jìn)或獨(dú)特見(jiàn)解,有一定實(shí)用價(jià)值有較大改進(jìn)或新穎的見(jiàn)解,實(shí)用性尚可有一定改進(jìn)或新的見(jiàn)解有一定見(jiàn)解觀念陳舊論文(計(jì)算書(shū)、圖紙)撰寫(xiě)質(zhì)量50結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯性強(qiáng),層次清晰,語(yǔ)言準(zhǔn)確,文字流暢,完全符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙非常工整、清晰結(jié)構(gòu)合理,符合邏輯,文章層次分明,語(yǔ)言準(zhǔn)確,文字流暢,符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙工整、清晰結(jié)構(gòu)合理,層次較為分明,文理通順,基本達(dá)到規(guī)范化要求,書(shū)寫(xiě)比較工整;圖紙比較工整、清晰結(jié)構(gòu)基本合理,邏輯基本清楚,文字尚通順,勉強(qiáng)達(dá)到規(guī)范化要求;圖紙比較工整內(nèi)容空泛,結(jié)構(gòu)混亂,文字表達(dá)不清,錯(cuò)別字較多,達(dá)不到規(guī)范化要求;圖紙不工整或不清晰指導(dǎo)教師評(píng)定成績(jī):指導(dǎo)教師簽名:年月日重慶大學(xué)本科學(xué)生課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)題目Windows系統(tǒng)資源管理器與任務(wù)管理器學(xué)院計(jì)算機(jī)專(zhuān)業(yè)網(wǎng)絡(luò)工程年級(jí)09已知參數(shù)和設(shè)計(jì)要求:熟悉操作系統(tǒng)資源管理原理,掌握編程接口,能夠使用高級(jí)語(yǔ)言調(diào)用編程接口,設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)資源管理器的全部功能(包括:菜單、圖標(biāo)、右鍵菜單),實(shí)現(xiàn)軟件資源和數(shù)據(jù)資源的管理。掌握操作系統(tǒng)任務(wù)與進(jìn)程概念,熟悉任務(wù)與進(jìn)程管理的方法,通過(guò)高級(jí)語(yǔ)言編程接口設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)任務(wù)管理器的全部功能(包括:菜單、右鍵菜單、應(yīng)用程序管理、進(jìn)程管理、性能顯示、聯(lián)網(wǎng)狀態(tài)和用戶(hù)信息)。學(xué)生應(yīng)完成的工作:了解Windows操作系統(tǒng)的發(fā)展歷史了解WindowsXP的體系結(jié)構(gòu)掌握Windows系統(tǒng)API的調(diào)用方法設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)資源管理器的全部功能(包括:菜單、圖標(biāo)、右鍵菜單),實(shí)現(xiàn)軟件資源和數(shù)據(jù)資源的管理。設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)任務(wù)管理器的全部功能(包括:菜單、右鍵菜單、應(yīng)用程序管理、進(jìn)程管理、性能顯示、聯(lián)網(wǎng)狀態(tài)和用戶(hù)信息)。目前資料收集情況(含指定參考資料):在互聯(lián)網(wǎng)上收集相關(guān)資料WilliamStallings,OperatingSystemsInternalsandDesignPrinciples,6thEdition,電子工業(yè)出版社,2010年課程設(shè)計(jì)的工作計(jì)劃:第1—第3天:查詢(xún)、收集資料,學(xué)習(xí)相關(guān)知識(shí);第4天:熟悉掌握API函數(shù)使用;第5—第9天:設(shè)計(jì)、實(shí)現(xiàn)程序;第10天:編寫(xiě)課程設(shè)計(jì)報(bào)告;第11天:檢查程序;第12天:修改完善程序與課程設(shè)計(jì)報(bào)告。任務(wù)下達(dá)日期2012年6月18日完成日期2012年7月7日目錄HYPERLINK摘要 1HYPERLINK第一章 課程設(shè)計(jì)要求 2HYPERLINK第二章 設(shè)計(jì)概要 3HYPERLINK2.1功能設(shè)計(jì) 3HYPERLINK2.2程序系統(tǒng)功能模塊 3HYPERLINK2.2.1Windows任務(wù)管理器功能模塊 3HYPERLINK2.2.2Windows資源管理器功能模塊 4HYPERLINK2.3功能分析 4HYPERLINK2.3.1Windows任務(wù)管理器功能流程圖 4HYPERLINK2.3.2Windows資源管理器功能流程圖 5HYPERLINK2.3.3Windows任務(wù)管理器界面截圖 6HYPERLINK2.3.4Windows資源管理器界面截圖 8HYPERLINK2.3.5程序主要功能說(shuō)明 11HYPERLINK第三章調(diào)試分析與測(cè)試結(jié)果 34HYPERLINK3.1Windows任務(wù)管理器 34HYPERLINK3.1.1基本界面 34HYPERLINK3.1.2進(jìn)程狀態(tài)查看 35HYPERLINK3.1.3CPU狀態(tài)查看 36HYPERLINK3.1.4進(jìn)程管理功能 36HYPERLINK3.2Windows資源管理器 39HYPERLINK3.2.1基本界面 39HYPERLINK3.2.2剪切功能的實(shí)現(xiàn) 41HYPERLINK3.2.3復(fù)制功能的實(shí)現(xiàn) 42HYPERLINK3.2.4刪除功能的實(shí)現(xiàn) 43HYPERLINK第四章 設(shè)計(jì)總結(jié) 44HYPERLINK第五章 參考文獻(xiàn) 45摘要操作系統(tǒng)是一個(gè)介于軟件和硬件之間的特殊硬件,一方面分配硬件資源另一方面支持軟件在它上面的實(shí)現(xiàn),如何實(shí)時(shí)地監(jiān)控和掌握系統(tǒng)軟硬件工作的狀態(tài)、資源分配和使用的情況,對(duì)計(jì)算機(jī)用戶(hù)而言十分重要,于是就有了任務(wù)管理器這樣的實(shí)時(shí)監(jiān)控窗口;同理,我們也需要掌握計(jì)算機(jī)硬件設(shè)備的工作狀態(tài),掌握其如何存儲(chǔ)文件、分配硬盤(pán)資源等,這也是我們做資源管理器的初衷。我們的電腦需要我們?nèi)チ私馑倪\(yùn)行狀況,掌握和管理它的進(jìn)程,并對(duì)其異常情況給予操作和控制,任務(wù)管理器就像是我們了解和控制自己電腦運(yùn)作的一個(gè)窗口,通過(guò)這個(gè)窗口我們可以了解到電腦所有進(jìn)程運(yùn)行狀況,并對(duì)運(yùn)行的進(jìn)程加于管理和控制,正如在本實(shí)驗(yàn)中,啟動(dòng)進(jìn)程管理器后,可以通過(guò)”獲取進(jìn)程”功能來(lái)獲得本計(jì)算機(jī)啟動(dòng)的進(jìn)程,以及與該進(jìn)程相關(guān)的信息,其中包括的信息有:進(jìn)程映像名稱(chēng),進(jìn)程開(kāi)啟的線(xiàn)程數(shù),進(jìn)程的PID以及進(jìn)程的優(yōu)先數(shù),我們可以通過(guò)這些信息來(lái)了解計(jì)算機(jī)中每個(gè)進(jìn)程的使用狀況。同時(shí)我們可以在進(jìn)程管理器上選中一個(gè)要終止的的進(jìn)程,點(diǎn)擊“終止進(jìn)程”功能按鈕,該進(jìn)程被終止執(zhí)行并退出進(jìn)程列表,其中還包括了自動(dòng)刷新的功能,此按鈕實(shí)現(xiàn)的功能正如我們電腦任務(wù)管理器的“進(jìn)程”功能,當(dāng)電腦執(zhí)行程序不能通過(guò)關(guān)閉窗口進(jìn)行正常的關(guān)閉時(shí),可以借助此辦法來(lái)關(guān)閉進(jìn)程。我們還可以通過(guò)這個(gè)進(jìn)程管理器來(lái)啟動(dòng)新的進(jìn)程,當(dāng)我們要在進(jìn)程管理器里啟動(dòng)新的進(jìn)程時(shí),只要點(diǎn)擊“啟動(dòng)新進(jìn)程”按鍵,則會(huì)彈出“打開(kāi)進(jìn)程”對(duì)話(huà)框,我們可以通過(guò)對(duì)話(huà)框里的“瀏覽”窗口選擇要打開(kāi)的新進(jìn)程,這是任務(wù)管理器里沒(méi)有實(shí)現(xiàn)的功能,通過(guò)這個(gè)功能我們?cè)诠芾碛?jì)算機(jī)時(shí)變得更加靈活方便,也使進(jìn)程管理的功能更加完善。在退出此進(jìn)程管理器時(shí)候,只要選擇“退出”功能按鈕則可關(guān)閉進(jìn)程管理器,快速退出管理器的界面。本管理器設(shè)計(jì)比較簡(jiǎn)潔,操作靈活,使用簡(jiǎn)單,可以為我們管理和控制計(jì)算機(jī)的進(jìn)程提供了一個(gè)簡(jiǎn)便的方法,是我們控制本計(jì)算機(jī)進(jìn)程和了解計(jì)算機(jī)進(jìn)程情況的良好助手。關(guān)鍵詞:任務(wù)管理器資源管理器操作系統(tǒng)課程設(shè)計(jì)要求題目名稱(chēng):Windows系統(tǒng)資源管理器與任務(wù)管理器題目類(lèi)型:設(shè)計(jì)型課程設(shè)計(jì)目的:熟悉操作系統(tǒng)資源管理原理,掌握編程接口,能夠使用高級(jí)語(yǔ)言調(diào)用編程接口,設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)資源管理器和任務(wù)管理器的全部功能。已知參數(shù)和設(shè)計(jì)要求:熟悉操作系統(tǒng)資源管理原理,掌握編程接口,能夠使用高級(jí)語(yǔ)言調(diào)用編程接口,設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)資源管理器的全部功能(包括:菜單、圖標(biāo)、右鍵菜單),實(shí)現(xiàn)軟件資源和數(shù)據(jù)資源的管理;掌握操作系統(tǒng)任務(wù)與進(jìn)程概念,熟悉任務(wù)與進(jìn)程管理的方法,通過(guò)高級(jí)語(yǔ)言編程接口設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)任務(wù)管理器的全部功能(包括:菜單、右鍵菜單、應(yīng)用程序管理、進(jìn)程管理、性能顯示、聯(lián)網(wǎng)狀態(tài)和用戶(hù)信息)。實(shí)驗(yàn)內(nèi)容:了解Windows操作系統(tǒng)的發(fā)展歷史;了解WindowsXP的體系結(jié)構(gòu);掌握Windows系統(tǒng)API的調(diào)用方法;設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)資源管理器的全部功能(包括:菜單、圖標(biāo)、右鍵菜單),實(shí)現(xiàn)軟件資源和數(shù)據(jù)資源的管理;設(shè)計(jì)并實(shí)現(xiàn)Windows操作系統(tǒng)任務(wù)管理器的全部功能(包括:菜單、右鍵菜單、應(yīng)用程序管理、進(jìn)程管理、性能顯示、聯(lián)網(wǎng)狀態(tài)和用戶(hù)信息)。設(shè)計(jì)概要2.1功能設(shè)計(jì)本項(xiàng)目是為了實(shí)現(xiàn)模擬Windows系統(tǒng)任務(wù)管理器和資源管理器。項(xiàng)目的分析及功能設(shè)計(jì)要求如下:編程模擬實(shí)現(xiàn)Windows系統(tǒng)任務(wù)管理器和資源管理器兩個(gè)應(yīng)用程序;服務(wù)器端可以對(duì)文件進(jìn)行管理,包括上傳,下載,刪除文件,重命名等;客服端可以實(shí)現(xiàn)文件的上傳、下載以及查看服務(wù)器下默認(rèn)目錄的文件列表;在程序中應(yīng)用多線(xiàn)程來(lái)實(shí)現(xiàn)多個(gè)客戶(hù)端同時(shí)對(duì)一個(gè)服務(wù)器端進(jìn)行請(qǐng)求操作。2.2程序系統(tǒng)功能模塊關(guān)機(jī)查看選項(xiàng)文件功能設(shè)計(jì)當(dāng)前用戶(hù)狀態(tài)內(nèi)存使用狀態(tài)CPU狀態(tài)進(jìn)程、應(yīng)用程序狀態(tài)進(jìn)程數(shù)實(shí)時(shí)狀態(tài)監(jiān)控Windows任務(wù)管理器新建、切換進(jìn)程、關(guān)閉進(jìn)程關(guān)于關(guān)機(jī)、注銷(xiāo)立即刷新、小圖標(biāo)、詳細(xì)列表總在最前新建任務(wù)、退出管理器進(jìn)程幫助2.2.1Windows任務(wù)管理器功能模塊關(guān)機(jī)查看選項(xiàng)文件功能設(shè)計(jì)當(dāng)前用戶(hù)狀態(tài)內(nèi)存使用狀態(tài)CPU狀態(tài)進(jìn)程、應(yīng)用程序狀態(tài)進(jìn)程數(shù)實(shí)時(shí)狀態(tài)監(jiān)控Windows任務(wù)管理器新建、切換進(jìn)程、關(guān)閉進(jìn)程關(guān)于關(guān)機(jī)、注銷(xiāo)立即刷新、小圖標(biāo)、詳細(xì)列表總在最前新建任務(wù)、退出管理器進(jìn)程幫助圖2.1文件功能設(shè)計(jì)文件類(lèi)型文件大小目錄樹(shù)資源狀態(tài)顯示W(wǎng)indows資源管理器2.2.2Windows資源管理器功能模塊文件功能設(shè)計(jì)文件類(lèi)型文件大小目錄樹(shù)資源狀態(tài)顯示W(wǎng)indows資源管理器文件名文件名修改時(shí)間修改時(shí)間新建、打開(kāi)、保存、另存為、最近的文件、退出新建、打開(kāi)、保存、另存為、最近的文件、退出關(guān)于幫助視圖關(guān)于幫助視圖撤銷(xiāo)、剪切、粘貼、復(fù)制編輯撤銷(xiāo)、剪切、粘貼、復(fù)制編輯工具欄和停靠窗口工具欄和??看翱趹?yīng)用程序外觀狀態(tài)欄圖2.22.3功能分析2.3.1Windows任務(wù)管理器功能流程圖圖Windows資源管理器功能流程圖顯示數(shù)據(jù)顯示數(shù)據(jù)控件消息鼠標(biāo)事件消息資源數(shù)據(jù)資源文件用戶(hù)操作鼠標(biāo)顯示操作效果資源管理器控制系統(tǒng)鼠標(biāo)事件處理圖Windows任務(wù)管理器界面截圖整體界面不同狀態(tài)顯示的截圖2.3.4Windows資源管理器界面截圖整體界面:2、功能界面展示:“文件”功能展示“編輯”功能展示“視圖”功能展示“幫助”功能展示2.3.5程序主要功能說(shuō)明一、Windows任務(wù)管理器主要功能代碼實(shí)現(xiàn):'獲得進(jìn)程代碼實(shí)現(xiàn)PublicSubListProcess()OnErrorResumeNextDimiAsLong,jAsLong,nAsLongDimprocAsPROCESSENTRY32DimsnapAsLongDimexenameAsString'應(yīng)用程序名DimitemAsListItemDimlngHwndProcessAsLongDimlngModules(1To200)AsLongDimlngCBSize2AsLongDimlngReturnAsLongDimstrModuleNameAsStringDimpmcAsPROCESS_MEMORY_COUNTERSDimWKSizeAsLongDimstrProcessNameAsStringDimstrCommentAsString'裝載進(jìn)程注釋的字符串DimProClassAsString'程序的類(lèi)名'開(kāi)始進(jìn)程循環(huán)snap=CreateToolhelpSnapshot(TH32CS_SNAPall,0)proc.dwSize=Len(proc)theloop=ProcessFirst(snap,proc)i=0n=0Whiletheloop<>0i=i+1'打開(kāi)指定的進(jìn)程序,并得到進(jìn)程的句柄lngHwndProcess=OpenProcess(PROCESS_QUERY_INFORMATIONOrPROCESS_VM_READ,0,proc.th32ProcessID)IflngHwndProcess<>0Then'枚舉系統(tǒng)中正在運(yùn)行的進(jìn)程模板lngReturn=EnumProcessModules(lngHwndProcess,lngModules(1),200,lngCBSize2)IflngReturn<>0Then'返回特定數(shù)目空格的strModuleName=Space(MAX_PATH)'獲取一個(gè)已裝載模板的完整路徑名稱(chēng)lngReturn=GetModuleFileNameExA(lngHwndProcess,lngModules(1),strModuleName,500)strProcessName=Left(strModuleName,lngReturn)strProcessName=CheckPath(Trim$(strProcessName))IfstrProcessName<>""Then'判斷ITEM是否已經(jīng)存在j=HaveItem(proc.th32ProcessID)Ifj=0Then'如果沒(méi)有該進(jìn)程'獲取短文件名exename=Dir(strProcessName,vbNormalOrvbHiddenOrvbReadOnlyOrvbSystem)Ifexename="hh.exe"Then'MsgBoxSetProClass(proc.th32ProcessID,IDLE_PRIORITY_CLASS)EndIf'添加進(jìn)程item'進(jìn)程IDitem.SubItems(1)=proc.th32ProcessID'內(nèi)存使用pmc.cb=LenB(pmc)'獲得進(jìn)程的內(nèi)存信息,在這里就是計(jì)算該進(jìn)程占用內(nèi)存多少lret=GetProcessMemoryInfo(lngHwndProcess,pmc,pmc.cb)n=n+pmc.WorkingSetSizeWKSize=pmc.WorkingSetSize/1024item.SubItems(3)=WKSize&"K"'進(jìn)程序IP號(hào)item.SubItems(2)=GetProClass(proc.th32ProcessID)'進(jìn)程圖標(biāo)將獲取的圖標(biāo)加到IMAGE控件中Else'如果已經(jīng)有該進(jìn)程pmc.cb=LenB(pmc)'獲得進(jìn)程的內(nèi)存信息,在這里就是計(jì)算該進(jìn)程占用內(nèi)存多少lret=GetProcessMemoryInfo(lngHwndProcess,pmc,pmc.cb)n=n+pmc.WorkingSetSizeWKSize=pmc.WorkingSetSize/1024'計(jì)算占用內(nèi)存'獲得進(jìn)程的類(lèi)名ProClass=GetProClass(proc.th32ProcessID)EndIfEndIfEndIfEndIftheloop=ProcessNext(snap,proc)WendCloseHandlesnap'顯示總進(jìn)程數(shù)Label3Ifi<>ProCountThenLabel3.Caption="進(jìn)程數(shù):"&iProCount=iEndIfIfn<>RamUseThen'這里的"130"是后來(lái)加上去的.是為了和系統(tǒng)自帶的數(shù)值一樣Label5.Caption=Val(FormatLng(n))+130&"MB"RamUse=nFori=950ToVal(FormatLng(n))+400Step-90rampic.Line(0,i)-Step(1200,20),&HFF00&,BFNextiEndIfEndSub'調(diào)用系統(tǒng)的"關(guān)于"窗PrivateSubabout_Click()OnErrorResumeNextShellAboutMe.hwnd,App.Title,"譚建&文程&張?jiān)?,ByVal0&EndSub'退出本程序員PrivateSubclose_Click()tmrRefresh.Enabled=FalseUnloadMeEndSubPrivateSubCloseSystem_Click()tmrRefresh.Enabled=FalseUnloadMeEndSub'應(yīng)用程序切換程序PrivateSubcmdSwitch_Click()DimhwndAsLongDimXAsLongDimlngWWAsLongIfLstApp.ListIndex<0ThenBeep:ExitSubhwnd=LstApp.ItemData(LstApp.ListIndex)'取得窗口的結(jié)構(gòu)信息lngWW=GetWindowLong(hwnd,GWL_STYLE)IflngWWAndWS_MINIMIZEThen'控制窗口的可見(jiàn)性X=ShowWindow(hwnd,SW_RESTORE)EndIf'指定一個(gè)窗口新的位置'第2個(gè)參數(shù):將窗口置于Z序列的頂部.X=SetWindowPos(hwnd,HWND_TOP,0,0,0,0,_SWP_NOMOVEOrSWP_NOSIZEOrSWP_SHOWWINDOW)EndSub'保持當(dāng)前位置或保持當(dāng)前大小或顯示窗口'彈出"新建任務(wù)"窗PrivateSubCommand1_Click()frmnew.ShowvbModalEndSub'結(jié)束應(yīng)用程序'還有就是在如果列表中沒(méi)有活動(dòng)程序,點(diǎn)擊"結(jié)束程序"會(huì)退出本身PrivateSubCommand3_Click()OnErrorResumeNext'IfLstApp.ListCount=0Then'應(yīng)用程序的類(lèi)名,和程序的標(biāo)題DimlpclassnameAsString,lpcaptionAsString'程序的句柄號(hào)DimHandleAsLongDimRetvalAsLong'先是打開(kāi)要關(guān)閉的程序,其它就是將該程序顯示成當(dāng)前程序ShellLstApp.Text,1lpclassname=LstApp.Textlpcaption=LstApp.Text'獲得程序的句柄號(hào)Handle=FindWindow(vbNullString,lpcaption)'用函數(shù)關(guān)閉應(yīng)用程序PostMessageHandle,WM_Close,0&,0&'所了和列表控件一至,在這里刪除列表中的該進(jìn)程名LstApp.RemoveItemLstApp.ListIndexLstApp.refresh'刷新FindAllAppsEndSub'結(jié)束指定進(jìn)程功能代碼實(shí)現(xiàn)PrivateSubCommand4_Click()OnErrorResumeNextDimiAsLong,handAsLong,idAsLongIfMsgBox("確定要結(jié)束進(jìn)程嗎?",vbExclamation+vbOKCancel)=vbCancelThenExitSubIfid<>0ThenEndProidEndIfListProcessEndSubPrivateSubCommand5_Click()DimAboutRetAsLongAboutRet=ExitWindowsEx(EWX_LOGOFF,0)EndSub'注銷(xiāo)用戶(hù)功能實(shí)現(xiàn)PrivateSubCommand6_Click()DimAboutRetAsLongAboutRet=ExitWindowsEx(EWX_LOGOFF,0)EndSub'切換至功能實(shí)現(xiàn)PrivateSubcutoverto_Click()cmdSwitch_ClickMe.WindowState=1EndSub'改變進(jìn)程顯示方式PrivateSubDetailed_Click()List1.View=lvwReportEndSub'結(jié)束應(yīng)用程序功能實(shí)現(xiàn)PrivateSubendprograme_Click()Command3_ClickEndSub'關(guān)機(jī)功能實(shí)現(xiàn)PrivateSubExit_Click()frmclose.ShowvbModalEndSub'CPU效率監(jiān)視CpuPicture(0).ScaleMode=vbPixelsCpuPicture(1).ScaleMode=vbPixelsSetQueryObject=NewCCpuwatch'對(duì)象初始化QueryObject.Initialize'打開(kāi)時(shí)間控件tmrRefresh.Enabled=True'調(diào)用刷新過(guò)程tmrRefresh_Timer'*****************************************'獲得所有系統(tǒng)進(jìn)程ListProcess'窗體總在前SetTopMe,front.Checked'***************************************************'獲得系統(tǒng)的當(dāng)前用戶(hù)cnt&=199s$=String$(200,0)dl&=GetUserName(s$,cnt)item.SubItems(2)="正在運(yùn)行..."item.SubItems(1)=WorkstationID'設(shè)置系統(tǒng)托盤(pán)IfWindowState=vbMinimizedThenLastState=vbNormalElseLastState=WindowStateEndIfAddToTrayMe,TrayEndSubPrivateSubForm_Resize()SelectCaseWindowStateCasevbMinimizedMe.Visible=FalseCasevbMaximizedMe.Visible=TrueEndSelectIfWindowState<>vbMinimizedThenLastState=WindowStateMe.Visible=TrueEndIfEndSubPrivateSubForm_Unload(CancelAsInteger)RemoveFromTray'關(guān)閉托盤(pán)tmrRefresh.Enabled=FalseUnloadMeEndSubPrivateSubfront_Click()front.Checked=Notfront.CheckedSetTopMe,front.CheckedEndSubPrivateSubjsjc_Click()Command4_ClickEndSubPrivateSubList1_ColumnClick(ByValColumnHeaderAsMSComctlLib.ColumnHeader)OnErrorResumeNextWithList1'設(shè)置Sorted為T(mén)rue以將列表排序。If(ColumnHeader.Index-1)=.SortKeyThen.SortOrder=(.SortOrder+1)Mod2.Sorted=TrueElse.Sorted=False.SortOrder=0.SortKey=ColumnHeader.Index-1.Sorted=TrueEndIfEndWithEndSub'右擊菜單;,,并初使化進(jìn)程的優(yōu)先級(jí)別PrivateSubList1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,yAsSingle)OnErrorResumeNextDimjAsLong,iAsLongIfButton=2ThenIfList1.HitTest(X,y)IsNothingThenExitSubj=List1.HitTest(X,y).IndexList1.ListItems(j).Selected=TrueFori=0To5mnuSetProClassSub(i).Checked=FalseNextCase"實(shí)時(shí)":mnuSetProClassSub(0).Checked=TrueCase"高":mnuSetProClassSub(1).Checked=TrueCase"較高":mnuSetProClassSub(2).Checked=TrueCase"標(biāo)準(zhǔn)":mnuSetProClassSub(3).Checked=TrueCase"較低":mnuSetProClassSub(4).Checked=TrueCase"低":mnuSetProClassSub(5).Checked=TrueEndSelectPopupMenuyouEndIfEndSubPrivateSublog_Click()frmclose.ShowvbModalEndSub'雙擊切換到另一個(gè)程序SublstApp_DblClick()cmdSwitch.Value=TrueEndSub'任務(wù)窗FunctionTaskWindow(hwCurrAsLong)AsLongDimlngStyleAsLong'調(diào)用函數(shù)得到指定窗口的信息'第一個(gè)參數(shù)是指定窗口的句柄,第二個(gè)是窗口的樣式lngStyle=GetWindowLong(hwCurr,GWL_STYLE)If(lngStyleAndIsTask)=IsTaskThenTaskWindow=TrueEndFunction'設(shè)置進(jìn)程優(yōu)先級(jí)PublicFunctionSetProClass(ByValPIDAsLong,ByValClassIDAsLong)OnErrorResumeNextDimhwdAsLong'在這里得到一個(gè)句柄hwd=OpenProcess(PROCESS_SET_INFORMATION,0,PID)'調(diào)用這個(gè)函數(shù)設(shè)置進(jìn)程的優(yōu)先級(jí)SetProClass=SetPriorityClass(hwd,ClassID)EndFunction'右鍵菜單PrivateSubLstApp_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,yAsSingle)IfButton=2ThenPopupMenuApplicationEndIfEndSub'在這里設(shè)置進(jìn)程優(yōu)先級(jí)PrivateSubmnuSetProClassSub_Click(IndexAsInteger)OnErrorResumeNextDimPIDAsLong,rtnAsLong得到進(jìn)程PIDIfmnuSetProClassSub(Index).Checked=TrueThenExitSubSelectCaseIndexCase1:rtn=SetProClass(PID,HIGH_PRIORITY_CLASS)'高Case2:rtn=SetProClass(PID,32768)'較高Case3:rtn=SetProClass(PID,NORMAL_PRIORITY_CLASS)'標(biāo)準(zhǔn)Case4:rtn=SetProClass(PID,16384)'較低Case5:rtn=SetProClass(PID,IDLE_PRIORITY_CLASS)'低EndSelectIfrtn=0ThenMsgBox"無(wú)法為進(jìn)程設(shè)置優(yōu)先級(jí)。",vbCriticalEndSub'彈出"新建任務(wù)"窗PrivateSubnewfile_Click()frmnew.ShowvbModalEndSubPrivateSubplaseago_Click()cmdSwitch_ClickEndSubPrivateSubrefresh_Click()frmclose.ShowvbModalEndSub'刷新PrivateSubrefresh1_Click()FindAllAppsEndSubPrivateSubshowago_Click()showago.Checked=Notshowago.CheckedSetTopMe,showago.CheckedEndSubPrivateSubsmall_Click()List1.View=Index+2List1.Sorted=TrueEndSubPrivateSubSSTab1_DblClick()EndSubPrivateSubTimer3_Timer()DimXAsLongCallGlobalMemoryStatus(minfo)'總的內(nèi)存量X=-minfo.dwTotalPhys/1024Label2(0).Caption=Str$(Int(X))'可用的內(nèi)存量X=minfo.dwAvailPhys/1024Label2(1).Caption=Str$(Int(X))'系統(tǒng)緩存Label2(2).Caption=-(Val(Label2(0))-Val(Label2(1))-500)'虛擬內(nèi)存總數(shù)X=minfo.dwTotalVirtual/1024Label7(0).Caption=Str$(Int(X/1024))&"M"'可用虛擬內(nèi)存X=minfo.dwAvailVirtual/1024Label7(1).Caption=Str$(Int(X/1024))&"M"EndSubPrivateSubTimer4_Timer()Line14.X2=Line14.X2-20Line14.X1=Line14.X1-20IfLine14.X1=0ThenTimer4.Enabled=FalseElseTimer4.Enabled=TrueEndIfEndSubPrivateSubTimer6_Timer()FindAllAppsEndSub'CPU效率監(jiān)視PrivateSubtmrRefresh_Timer()DimRetAsIntegerDimcntAsIntegerDimiAsInteger'返回CPU狀態(tài)Ret=QueryObject.Querycnt=Int(Ret/10+1)CpuPicture(0).Cls'清除窗口中的內(nèi)容IfRet<>-1ThenFori=0Tocnt-1'用PIC控件的LINE方法在PIC上畫(huà)圖,用以顯示CPU的占用率CpuPicture(0).Line(2,70-(5+i*6))-(79,70-(5+i*6+2)),&HFF00&,BFNextiShiftPointsGraphPoints(UBound(GraphPoints))=RetCpuPicture(1).ClsForcnt=LBound(GraphPoints)ToUBound(GraphPoints)-1CpuPicture(1).Line(cnt,80-GraphPoints(cnt))-(cnt+1,80-GraphPoints(cnt+1)),&HFF00&NextcntCpuLabel.Caption=CStr(Ret)+"%"Label4.Caption="CPU使用:"&CStr(Ret)+"%"'托盤(pán)顯示CPU使用率SetTrayTip"CPU使用:"&CStr(Ret)+"%"EndIfEndSub'CPU效率監(jiān)視SubShiftPoints()DimcntAsIntegerForcnt=LBound(GraphPoints)ToUBound(GraphPoints)-1GraphPoints(cnt)=GraphPoints(cnt+1)NextcntEndSub'判斷item是否存在PublicFunctionHaveItem(ByValitemIDAsLong)AsLongOnErrorGoTozbbHaveItem=List1.ListItems("ID:"&CStr(itemID)).IndexExitFunctionzbb:HaveItem=0EndFunction'結(jié)束一個(gè)進(jìn)程PublicSubEndPro(ByValPIDAsLong)OnErrorResumeNextDimlngHwndProcessAsLongDimhandAsLongDimexitCodeAsLong'打開(kāi)要結(jié)束的進(jìn)程,把該進(jìn)程的句柄賦給變量hand=OpenProcess(PROCESS_TERMINATE,True,PID)'結(jié)束進(jìn)程TerminateProcesshand,exitCode'關(guān)閉進(jìn)程的內(nèi)核對(duì)象......(除非對(duì)內(nèi)核對(duì)象的所有引用都已關(guān)閉,否則該對(duì)象不會(huì)實(shí)際刪除)CloseHandlehandEndSubPrivateSubTimer2_Timer()CheckProcessEndSubPrivateSubTimer1_Timer()ListProcessEndSub'將正在運(yùn)行的應(yīng)用程序加到列表控件中SubFindAllApps()DimhwCurrAsLongDimintLenAsLongDimstrTitleAsStringDimitemAsListItem'先清空LstApp.Clear'獲取一個(gè)窗口的句柄'為一個(gè)源子窗口尋找第一個(gè)兄弟(同級(jí))窗口,或?qū)ふ业谝粋€(gè)頂級(jí)窗口hwCurr=GetWindow(Me.hwnd,GW_HWNDFIRST)DoWhilehwCurrIfhwCurr<>Me.hwndAndTaskWindow(hwCurr)Then'調(diào)查窗口標(biāo)題文字或控件內(nèi)容的長(zhǎng)短intLen=GetWindowTextLength(hwCurr)+1strTitle=Space$(intLen)'取得窗體的標(biāo)題(caption)文字intLen=GetWindowText(hwCurr,strTitle,intLen)IfintLen>0ThenLstApp.AddItemstrTitleLstApp.ItemData(LstApp.NewIndex)=hwCurrEndIfEndIf'獲取下一個(gè)窗口的句柄hwCurr=GetWindow(hwCurr,GW_HWNDNEXT)LoopEndSubPublicFunctionCheckPath(ByValPathStrAsString)AsStringOnErrorResumeNext'返回一個(gè)字符串,該字符串中指定的子字符串已被替換成另一子字符串,并且替換發(fā)生的次數(shù)也是指定的。PathStr=Replace(PathStr,"\??\","")IfUCase(Left$(PathStr,12))="\SYSTEMROOT\"ThenPathStr=GetWinDir&Mid$(PathStr,12)CheckPath=PathStrEndFunction新建一個(gè)進(jìn)程的命令'OpenProcess函數(shù)聲明PrivateDeclareFunctionOpenProcessLib"kernel32"_(ByValdwDesiredAccessAsLong,_ByValbInheritHandleAsLong,_ByValdwProcessIdAsLong_)AsLong'CloseHandle函數(shù)聲明PrivateDeclareFunctionCloseHandleLib"kernel32"_(ByValhObjectAsLong)AsLongPrivateSubclose_Click()UnloadMeEndSubPrivateSubcmdnew_Click()cmdialog.DialogTitle="瀏覽"cmdialog.Filter="程序|*.exe|所有文件|*.*"cmdialog.ShowOpenCombo1.Text=cmdialog.FileNameEndSubPrivateSubcmdOK_Click()OnErrorGoToerrDimhProgramAsLong'被檢測(cè)的程序進(jìn)程句柄DimX'打開(kāi)指定的程序X=Shell(Combo1.Text,1)hProgram=OpenProcess(0,False,X)CloseHandlehProgramExitSubUnloadMeerr:MsgBox"Windows找不到文件"&Combo1.Text&"。請(qǐng)確定文件名是否正確后,再試一次。要搜索文件,請(qǐng)單擊[開(kāi)始]按鈕,然"&Chr(13)&Chr(10)&"后單擊“搜索”。",vbExclamation,Combo1.TextCombo1.SetFocusCombo1.SelStart=0Combo1.SelLength=Len(Combo1.Text)EndSubPrivateSubCombo1_Change()IfCombo1.Text=""ThencmdOK.Enabled=FalseElsecmdOK.Enabled=TrueEndIfEndSubPrivateSubForm_Load()SetTopMe,TrueEndSub二、Windows資源管理器主要功能代碼實(shí)現(xiàn)://DoDataExchange數(shù)據(jù)動(dòng)態(tài)綁定,對(duì)按鈕添加變量voidCFileMangementView::DoDataExchange(CDataExchange*pDX){ CFormView::DoDataExchange(pDX); DDX_Control(pDX,IDC_TREE1,m_wbdShellTree); DDX_Control(pDX,IDC_LIST1,m_wndShellList);}//更改窗口樣式的時(shí)候重寫(xiě)此函數(shù)BOOLCFileMangementView::PreCreateWindow(CREATESTRUCT&cs){ //CREATESTRUCTcs來(lái)修改窗口類(lèi)或樣式 returnCFormView::PreCreateWindow(cs);}//右鍵點(diǎn)擊空白處功能代碼實(shí)現(xiàn)voidCFileMangementView::OnRButtonUp(UINTnFlags,CPointpoint){ ClientToScreen(&point); OnContextMenu(this,point);}voidCFileMangementView::OnContextMenu(CWnd*pWnd,CPointpoint){ theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT,point.x,point.y,this,TRUE);}//CFileMangementView診斷#ifdef_DEBUGvoidCFileMangementView::AssertValid()const{ CFormView::AssertValid();}voidCFileMangementView::Dump(CDumpContext&dc)const{ CFormView::Dump(dc);}CFileMangementDoc*CFileMangementView::GetDocument()const//非調(diào)試版本是內(nèi)聯(lián)的{ ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFileMangementDoc))); return(CFileMangementDoc*)m_pDocument;}#endif//_DEBUG//CFileMangementView消息處理程序voidCFileMangementView::OnSize(UINTnType,intcx,intcy){ CFormView::OnSize(nType,cx,cy); //TODO:在此處添加消息處理程序代碼// LockWindowUpdate(); CRectrc; if(m_wbdShellTree.GetSafeHwnd()) { m_wbdShellTree.GetWindowRect(rc); ScreenToClient(rc); rc.bottom+=cy-oldRc.Height(); m_wbdShellTree.ShowWindow(SW_HIDE); m_wbdShellTree.MoveWindow(rc); m_wbdShellTree.ShowWindow(SW_SHOW); } if(m_wndShellList.GetSafeHwnd()) { m_wndShellList.GetWindowRect(rc); ScreenToClient(rc); rc.right+=(cx-oldRc.Width()); rc.bottom+=cy-oldRc.Height(); m_wndShellList.ShowWindow(SW_HIDE); m_wndShellList.MoveWindow(rc); m_wndShellList.ShowWindow(SW_SHOW); } //RedrawWindow(); /*CRectrc2;rc2.top=oldRc.Height()+oldRc.top; rc2.left=oldRc.left;rc2.right=oldRc.right; rc2.bottom=oldRc.bottom+cy-oldRc.Height(); InvalidateRect(rc2,FALSE);*/ GetClientRect(oldRc);}//繪圖代碼實(shí)現(xiàn)voidCFileMangementView::OnDraw(CDC*pDC){ CRectrcClient; GetClientRect(&rcClient); //Draw3dRect實(shí)現(xiàn)繪制3D矩形的位置大小 pDC->Draw3dRect(0,0,rcClient.Width(),rcClient.Height(),::GetSysColor(COLOR_BTNSHADOW),::GetSysColor(COLOR_BTNHILIGHT));}//OnEraseBkgnd擦除了背景,則返回非零值;否則返回0//true表示已處理背景刷新,false表示需要在OnDraw里處理BOOLCFileMangementView::OnEraseBkgnd(CDC*pDC){ returntrue; //returnCFormView::OnEraseBkgnd(pDC);}//文件右鍵功能實(shí)現(xiàn)voidCFileMangementView::OnNMRClickList1(NMHDR*pNMHDR,LRESULT*pResult){ LPNMITEMACTIVATEpNMItemActivate=reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); //TODO:在此添加控件通知處理程序代碼 if(pNMItemActivate->iItem==-1) { CPointoPoint; CMenumenu; GetCursorPos(&oPoint); menu.LoadMenu(IDR_POPUP_EDIT1);//裝載自定義的右鍵菜單 CMenu*pSubMenu;//定義下面要用到的cmenu對(duì)象 pSubMenu=menu.GetSubMenu(0);//獲取第一個(gè)彈出菜單,所以第一個(gè)菜單必須有子菜單 if(m_isCopy||m_isCut)pSubMenu->EnableMenuItem(ID_EDIT_PASTE,MF_ENABLED); elsepSubMenu->EnableMenuItem(ID_EDIT_PASTE,MF_DISABLED|MF_GRAYED);//在指定位置顯示彈出菜單 pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,oPoint.x,oPoint.y,this); } else { CPointoPoint; CMenumenu; GetCursorPos(&oPoint);//定位光標(biāo) menu.LoadMenu(IDR_POPUP_EDIT);//裝載自定義的右鍵菜單,即右側(cè)列表的右鍵功能 CMenu*pSubMenu;//定義下面要用到的cmenu對(duì)象 pSubMenu=menu.GetSubMenu(0);//獲取第一個(gè)彈出菜單,所以第一個(gè)菜單必須有子菜單 //pSubMenu->EnableMenuItem(IDM_REMOVE_FROM_KILL_LIST,MF_DISABLED|MF_GRAYED); pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,oPoint.x,oPoint.y,this);//在指定位置顯示彈出菜單 //menu.Detach(); //menu.DestroyMenu(); for(inti=0;i<m_wndShellList.GetItemCount();i++) { if(m_wndShellList.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED) { m_wndShellList.GetItemPath(m_fileName,i); m_Item=i; } } } *pResult=0;}//打開(kāi)指定文件代碼實(shí)現(xiàn)voidCFileMangementView::OnOpenFile(){ //TODO:在此添加命令處理程序代碼 //ShellExecute:運(yùn)行一個(gè)外部程序(或者是打開(kāi)一個(gè)已注冊(cè)的文件、打開(kāi)一個(gè)目錄、打印一個(gè)文件等等),并對(duì)外部程序有一定的控制 ShellExecute(this->m_hWnd,_T("open"),m_fileName,NULL,NULL,SW_SHOW);}//重命名voidCFileMangementView::OnMyEditRename(){ //TODO:在此添加命令處理程序代碼 m_wndShellList.EditLabel(m_Item)->SetFocus(); }//重命名功能實(shí)現(xiàn)voidCFileMangementView::OnLvnEndlabeleditList1(NMHDR*pNMHDR,LRESULT*pResult){ NMLVDISPINFO*pDispInfo=reinterpret_cast<NMLVDISPINFO*>(pNMHDR); //TODO:在此添加控件通知處理程序代碼 boolisDir=false; if(::GetFileAttributes(m_fileName)&FILE_ATTRIBUTE_DIRECTORY) {isDir=true;} CStringstrMsg,strHint,strPre,strNxt; CStringstrTem1,strTem2;strTem2=strTem1=m_fileName; CStrings1=pDispInfo->item.pszText; if(s1!=_T("")&&s1!=m_fileInName) { //if(s1.Find('\\')+1&&s1.Find('/')+1&&s1.Find(':')+1&&s1.Find('*')+1&&s1.Find('?')+1&&s1.Find('"')+1&&s1.Find('<')+1&&s1.Find('>')+1&&s1.Find('|')+1) if(s1.FindOneOf(_T("\\/:*?\"<>|"))+1) {AfxMessageBox(_T("文件不能含有\(zhòng)\/:*?\"<>|")); } else { strTem1.Insert(strTem1.GetLength()+1,_T('\0')); fileOpStruct.hwnd=NULL; fileOpStruct.pFrom=strTem1; strTem2.Delete(m_fileName.ReverseFind('\\')+1,m_fileName.GetLength()-m_fileName.ReverseFind('\\')-1); strTem2.Insert(strTem2.GetLength()+1,s1); strTem2.Insert(strTem2.GetLength()+1,_T('\0')); fileOpStruct.pTo=strTem2; fileOpStruct.wFunc=FO_RENAME; fileOpStruct.fFlags=FOF_SILENT; fileOpStruct.hNameMappings=NULL; fileOpStruct.lpszProgressTitle=NULL; intres=SHFileOperation(&fileOpStruct); if(fileOpStruct.fAnyOperationsAborted) {AfxMessageBox(_T("重命名被取消了"));} else { if(res!=0) { AfxMessageBox(_T("重命名失敗,請(qǐng)檢查文件是否可以重命名!")); } else { m_wndShellList.Refresh(); if(isDir) { m_wndShellList.GetCurrentFolder(strTem1); m_wbdShellTree.Refresh(); m_wbdShellTree.SelectPath(strTem1); } } } } } *pResult=0;}voidCFileMangementView::OnLvnBeginlabeleditList1(NMHDR*pNMHDR,LRESULT*pResult){ NMLVDISPINFO*pDispInfo=reinterpret_cast<NMLVDISPINFO*>(pNMHDR); //TODO:在此添加控件通知處理程序代碼 m_wndShellList.GetEditControl()->LimitText(30); m_wndShellList.GetEditControl()->GetWindowText(m_fileInName); *pResult=0;}//刪除功能代碼實(shí)現(xiàn)voidCFileMangementView::OnMyEditDel(){ //TODO:在此添加命令處理程序代碼 boolisDir=false; if(::GetFileAttributes(m_fileName)&FILE_ATTRIBUTE_DIRECTORY) {isDir=true;} CStringstrTem1;strTem1=m_fileName; strTem1.Insert(strTem1.GetLength()+1,_T('\0')); fileOpStruct.hwnd=NULL; fileOpStruct.pFrom=strTem1; fileOpStruct.pTo=NULL; fileOpStruct.wFunc=FO_DELETE; fileOpStruct.fFlags=FOF_ALLOWUNDO|FOF_SIMPLEPROGRESS; fileOpStruct.hNameMappings=NULL; fileOpStruct.lpszProgressTitle=_T("正在刪除文件")+m_fileName; intres=SHFileOperation(&fileOpStruct); if(fileOpStruct.fAnyOperationsAborted) {AfxMessageBox(_T("刪除被取消了"));} else { if(res!=0) { AfxMessageBox(_T("刪除失敗,請(qǐng)檢查文件是否可以刪除!")); } else { m_wndShellList.Refresh(); if(isDir) { m_wndShellList.GetCurrentFolder(strTem1); m_wbdShellTree.Refresh(); m_wbdShellTree.SelectPath(strTem1); } } }}//刷新功能代碼實(shí)現(xiàn)voidCFileMangementView::OnMyEditReshow(){ //TODO:在此添加命令處理程序代碼 m_wndShellList.Refresh();}//復(fù)制功能代碼實(shí)現(xiàn)voidCFileMangementView::OnEditCopy(){ //TODO:在此添加命令處理程序代碼 m_isCopy=true;m_fileCopyName=m_fileName;m_isCut=false;}//粘貼功能代碼實(shí)現(xiàn)voidCFileMangementView::OnEditPaste(){ //TODO:在此添加命令處理程序代碼 CStringm_filePasteName; m_wndShellList.GetCurrentFolder(m_filePasteName); if(m_fileCopyName.Find(m_filePasteName)+1&&m_fileCopyName.ReverseFind('\\')==(m_filePasteName.GetLength())) {AfxMessageBox(_T("當(dāng)前已有此文件"));return;} if(m_isCopy) { boolisDir=false; if(::GetFileAttributes(m_fileCopyName)&FILE_ATTRIBUTE_DIRECTORY) {isDir=true;} CStringstrTem1;strTem1=m_fileCopyName; strTem1.Insert(strTem1.GetLength()+1,_T('\0')); m_filePasteName.Insert(m_filePasteName.GetLength()+1,_T('\0')); fileOpStruct.hwnd=NULL; fileOpStruct.pFrom=strTem1; fileOpStruct.pTo=m_filePasteName; fileOpStruct.wFunc=FO_COPY; fileOpStruct.fFlags=FOF_ALLOWUNDO|FOF_SIMPLEPROGRESS; fileOpStruct.hNameMappings=NULL; fileOpStruct.lpszProgressTitle=_T("正在復(fù)制文件")+m_fileCopyName; intres=SHFileOperation(&fileOpStruct); if(fileOpStruct.fAnyOperationsAborted) {AfxMessageBox(_T("復(fù)制被取消了"));} else { if(res!=0) {AfxMessageBox(_T("復(fù)制失敗,請(qǐng)檢查文件是否可以復(fù)制!")); } else { m_wndShellList.Refresh();m_isCopy=0; if(isDir) { m_wndShellList.GetCurrentFolder(m_filePasteName); m_wbdShellTree.Refresh(); m_wbdShellTree.SelectPath(m_filePasteName); } } } } elseif(m_isCut) { boolisDir=false; if(::GetFileAttributes(m_fileCutName)&FILE_ATTRIBUTE_DIRECTORY) {isDir=true;} CStringstrTem1;strTem1=m_fileCutName; strTem1.Insert(st

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論