版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘要隨著各高校學生的增多, 實驗室管理的工作變得越來越繁重。采用傳統(tǒng)的人工管理模式,效率低下,不能滿足實際的需求。本文描述的是基于Windows環(huán)境的一個實驗室進程管理系統(tǒng),對一個實驗室進程管理系統(tǒng)的需求進行了分析。本系統(tǒng)的主要功能包括:老師可以實時監(jiān)控學生機系統(tǒng)運行的程序,發(fā)現(xiàn)未被允許的進程進行警告;超過一定的時間則關(guān)閉未被允許的進程??梢栽黾雍蛣h除允許運行的程序至許可程序集;從許可程序集中,指定本節(jié)課允許運行的程序;可臨時添加本節(jié)可允許運行的程序(不將其加入許可程序集);增加或修改本節(jié)課允許運行的程序;許可程序集可以保存。系統(tǒng)的設(shè)計與開發(fā)采用服務器/客戶機的系統(tǒng)結(jié)構(gòu)模式,使用Delphi開
2、發(fā)工具開發(fā),應用SQL Server2000數(shù)據(jù)庫管理系統(tǒng),通過ADO連接數(shù)據(jù)庫。第一章 引言31.1課題背景41.2 語言工具41.3主要內(nèi)容4第二章 相關(guān)技術(shù)介紹52.1 delphi52.1.1 Delphi特點52.1.2 Delphi762.2 SQL Server62.2.1 SQL Server 200072.2.2 SQL Server 2000的特點72.3 ADO技術(shù)7第三章 需求分析與可行性分析73.1 需求分析73.1.1 實驗室需求簡介73.1.2 功能性需求83.1.3 非功能性需求8安全保密性需求:用戶登錄需要密碼驗證83.2 可行性分析93.2.1 經(jīng)濟可行性9
3、3.2.2 技術(shù)可行性9第四章 總體設(shè)計94.1 總體設(shè)計目標94.2 功能模塊設(shè)計94.3 數(shù)據(jù)庫設(shè)計114.3.2數(shù)據(jù)建模114.3.3各實體關(guān)系模型114.3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計12第五章 系統(tǒng)詳細設(shè)計155.1 重要代碼16第六章 實驗室進程管理系統(tǒng)設(shè)計總結(jié)246.1系統(tǒng)的優(yōu)點24參考文獻25第一章 引言21世紀,人類已全面進入數(shù)字信息化社會,現(xiàn)在信息技術(shù)的應用越來越普及,不但促進了社會的高速發(fā)展,也影響著人們的工作、學習、生活和娛樂的方式以及思想觀念。隨著科學技術(shù)的不斷提高,計算機科學與技術(shù)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域,迅速地改變著人類社會的生
4、產(chǎn)方式和生活方式,成為減輕人們體力與腦力勞動,幫助人們完成一些人們難以完成任務的有效工具。隨著電腦的普及與使用,現(xiàn)在的管理也提升了一個檔次,漸漸實現(xiàn)了無紙化辦公。高校是科研的陣地,教學的實驗室管理也應該一改傳統(tǒng)的人工管理,更加信息化,時代化,節(jié)省人力物力,提高效率。基于這一點,開發(fā)了此實驗室管理系統(tǒng)。1.1課題背景高校實驗室存在一些不良現(xiàn)象,有些學生在實驗課上做其他的事。如玩游戲為了提高高校實驗室管理效率,試實驗室的管理更加的規(guī)范。實驗室進程管理系統(tǒng)從限制學生電腦的進程來管理。使用實驗室進程管理系統(tǒng),只需一到兩名數(shù)據(jù)操作員即可操作管理系統(tǒng),節(jié)省大量人力和財力;可以存儲大量學生上課的基本信息,安
5、全、高效、快捷;可以實時監(jiān)控學生機系統(tǒng)運行的程序,發(fā)現(xiàn)未被允許的進程進行警告;超過一定的時間則關(guān)閉未被允許的進程。這些特點可以極大地提高實驗室管理的效率。1.2 語言工具該實驗室進程管理系統(tǒng)是我所在團隊的第一個任務,在語言工具的選擇上,我們通過導師的提議以及所有成員集體討論后,前臺工具使用了delphi語言,在后臺數(shù)據(jù)庫的選擇上,我們使用SQL server 2000作為我們的后臺。 delphi靈活方便,與后臺的SQL Server2000數(shù)據(jù)庫相結(jié)合,可以提供一個高性能的實驗室進程管理系統(tǒng)。1.3主要內(nèi)容本文研究的主要內(nèi)容有:l 實驗室進程管理系統(tǒng)的需求分析l 實驗室進程管理系統(tǒng)的可行性分
6、析l 實驗室進程管理系統(tǒng)開發(fā)的相關(guān)技術(shù)介紹l 實驗室進程管理系統(tǒng)的總體設(shè)計l 系統(tǒng)數(shù)據(jù)庫的概念設(shè)計l 系統(tǒng)各模塊的詳細設(shè)計l 系統(tǒng)評價以及設(shè)計中碰到的難點第二章 相關(guān)技術(shù)介紹開發(fā)數(shù)據(jù)庫管理信息系統(tǒng)需要兩種工具,即前臺開發(fā)語言和后臺數(shù)據(jù)庫。本系統(tǒng)前臺開發(fā)技術(shù)使用Delphi,后臺數(shù)據(jù)庫使用SQL Server2000。Delphi靈活方便,與后臺的SQL Server2000數(shù)據(jù)庫相結(jié)合,可以提供一個高性能的實驗室進程管理系統(tǒng)。2.1 delphiDelphi是Pascal語言的一種版本,但它與傳統(tǒng)的Pascal語言有很大差別。一個Delphi程序首先應是程序框架(Frame),而這一框架正式應
7、用程序的“骨架”。在骨架上即使沒有附著任何東西,仍然可以運行。所要做的工作只是在“骨架”中加入程序。缺省的應用程序是一個空白的窗體(Form),運行可以得到一個空白的窗口。這個窗口具有Windows窗口的全部性質(zhì),可以被放大縮小、移動、最大最小化等。程序框架及一個空白的窗體已經(jīng)是一個可運行應用程序,只是不處理任何事情。2.1.1 Delphi特點Delphi自從1995年2月誕生以來,獲得了巨大的榮譽和廣泛的影響力,以可視化編程、強大的編譯功能、友好的用戶界面聞名于世。主要特點是:l 高效的可視化組件庫和面向?qū)ο蟮募軜?gòu)。l 具有多種操作向?qū)Ш驮诰€幫助,大大方便程序編寫。l 界面設(shè)計所見即所得和
8、鼠標拖曳方式,可以輕松設(shè)計出華麗的界面。l 支持各種最新及最常用的技術(shù)如 Win32 API、OLE、COM、DCOM、ActiveX、ISAPI、NSAPI、DirectX等。l 全面支持Windows 應用程序。l 具有開放式數(shù)據(jù)庫結(jié)構(gòu),集成了豐富的數(shù)據(jù)庫開發(fā)工具。l 具有強大的面向網(wǎng)絡(luò)編程功能,其C/S開發(fā)工具在高性能的快速應用程序開發(fā)領(lǐng)域成為行業(yè)標準。Delphi產(chǎn)品按照功能可以分為4個類型:l Delphi集成開發(fā)環(huán)境(Integrate Develop Environment):提供友好的用戶編程開發(fā)界面,集成了高效的編譯器、項目管理器、團隊開發(fā)支持、高級調(diào)試等功能。l Delph
9、i可視化組件庫(Visual Component Library):提供幾百個常用組件,用于數(shù)據(jù)庫訪問、用戶接口、數(shù)據(jù)處理、報表和Internet開發(fā)。l Borland數(shù)據(jù)引擎(Borland Data Engineer):能夠進行數(shù)據(jù)庫管理,并與數(shù)據(jù)庫服務器高速連接。l MIDAS:是一個集成與Delphi的分布式應用稽核,功能強大,主要用于商業(yè)邏輯的智能集中管理和企業(yè)交易的快速處理。2.1.2 Delphi72002年8月6日,Borland公司正式宣布推出Delphi 7 Studio,全面支持Microsoft公司.NET平臺應用的開發(fā)。Delphi7是一個針對Windows平臺上的
10、跨平臺快速開發(fā)(RAD)環(huán)境。Delphi7的一個顯著特性是企業(yè)開發(fā)和部署。 Delphi7的新特點:l 企業(yè)應用的MDA開發(fā):通過讓開發(fā)者從設(shè)計到發(fā)布都重復使用一個應用程序,加速開發(fā)進程,同時顯著減少代碼量和需要的開發(fā)時間。l 可視化的快速Web開發(fā):讓開發(fā)者能夠在Delphi7環(huán)境中可視化地創(chuàng)建Web應用,并且利用它的應用模型框架,不必再考慮通用的服務器端的開發(fā)任務,還能透明地處理會話管理。l 內(nèi)建的Linux的跨平臺支持:Delphi7在出售時將附帶Delphi語言版本的Dylix3。Kylix3是第一個Linux操作系統(tǒng)上的高性能的可視化集成開發(fā)環(huán)境(IDE),它適用來快速創(chuàng)建數(shù)據(jù)庫應
11、用、GUI應用、Web應用和Web服務應用。l 企業(yè)級的報表能力:讓開發(fā)者能創(chuàng)建跨平臺的報表,這些報表能幫助查看應用程序運行的效率。l Windows XP應用:Delphi7包含了對Windows XP風格支持,讓開發(fā)者能夠創(chuàng)建可以利用Windows XP 使用者界面風格的應用。2.2 SQL Server 數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算機科學的重要分支。今天,信息資源已成為各個部門的重要財富和資源。建立一個滿足各級部門信息處理要求的行之有效的信息系統(tǒng)也成為企業(yè)或組織生存和發(fā)展的重要條件。因此,作為信息系統(tǒng)核心和基礎(chǔ)的數(shù)據(jù)庫技術(shù)得到越來越廣泛的應用。對于一個國家來說,數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)
12、據(jù)庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標志。 2.2.1 SQL Server 2000SQL Server 2000 是一個高性能的客戶端/服務器結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。SQL SERVER 2000是為支持高容量的事務處理以及數(shù)據(jù)倉庫和決策支持系統(tǒng)而設(shè)計的。它是Microsoft 公司推出的,該版本繼承了SQL Serve 7.0 版本的優(yōu)點,同時又比它增加了許多更先進的功能,可跨越從運行Microsoft Windows 98 的電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。2.2.2 SQL Server 2000
13、的特點l 簡單易操作:SQL Server 2000 界面風格和Windows界面風格完全一致。l 兼容性良好,具有擴展性,可靠性。l 數(shù)據(jù)倉庫: SQL Server 2000增加了OLAP功能。OLAP可以通過多維存儲技術(shù)對大型、復雜數(shù)據(jù)集執(zhí)行快速、高級的分析工作。數(shù)據(jù)挖掘功能能夠揭示隱藏在大量數(shù)據(jù)中的傾向及趨勢,它允許組織或機構(gòu)最大限度地從數(shù)據(jù)中獲取價值。通過對現(xiàn)有數(shù)據(jù)進行有效分析,這一功能可以對未來的趨勢進行預測。2.3 ADO技術(shù) ADO( Active Data Objects )是一種提供訪問各種數(shù)據(jù)類型的鏈接機制,是通過ODBC的方法訪問數(shù)據(jù)庫的接口。ADO主要優(yōu)點是易于使用、
14、高速度、低內(nèi)存支出和占用磁盤空間較少,同時具有遠程數(shù)據(jù)服務(RDS)功能。在Delphi中,提供了一組ADO組件,用于對ADO訪問能力的支持。第三章 需求分析與可行性分析3.1 需求分析3.1.1 實驗室需求簡介 客戶端方面:實時監(jiān)控學生機系統(tǒng)運行的程序,發(fā)現(xiàn)未被允許的進程進行警告;超過一定的時間則關(guān)閉未被允許的進程。服務器方面:可以增加和刪除允許運行的程序至許可程序集;從許可程序集中,指定本節(jié)課允許運行的程序;可臨時添加本節(jié)可允許運行的程序(不將其加入許可程序集);增加或修改本節(jié)課允許運行的程序;許可程序集可以保存。3.1.2 功能性需求軟件需求分析是指對目標軟件系統(tǒng)在功能、行為、性能、設(shè)計
15、約束等方面的期望。需求分析是軟件設(shè)計、實現(xiàn)測試直至維護的主要基礎(chǔ),良好的需求分析可以避免或盡早提出早期的錯誤,從而降低軟件的開發(fā)成本,改進軟件的質(zhì)量。我們所設(shè)計完成的實驗室進程管理系統(tǒng)應該要完成以下的任務: 客戶端 (1) 從教師機獲取本節(jié)課允許運行程序集;(2) 實時監(jiān)控學生機系統(tǒng)運行的程序,發(fā)現(xiàn)未被允許的進程進行警告;(3) 超過一定的時間則關(guān)閉未被允許的進程(4) 系統(tǒng)以托盤程序或系統(tǒng)服務形式運行; 服務器端(5) 可以增加和刪除允許運行的程序至許可程序集;(6) 從許可程序集中,指定本節(jié)課允許運行的程序;(7) 可臨時添加本節(jié)可允許運行的程序(不將其加入許可程序集);(8) 增加或修改
16、本節(jié)課允許運行的程序;(9) 許可程序集可以保存3.1.3 非功能性需求用戶界面需求:簡潔、易用、易懂,友好的用戶界面。運行環(huán)境需求:windows 98及以上操作系統(tǒng)可靠性需求:保證用戶在正常使用本系統(tǒng)時,用戶的操作或誤操作不會產(chǎn)生數(shù)據(jù)丟失。安全保密性需求:用戶登錄需要密碼驗證3.2 可行性分析開發(fā)任何一個系統(tǒng),都會受到時間和資源上的限制。因此,在每一個項目開發(fā)之前,都要進行可行性分析,以減少項目的開發(fā)風險,避免人力,物力和財力的浪費。可行性分析主要包括經(jīng)濟可行性和技術(shù)可行性等。3.2.1 經(jīng)濟可行性經(jīng)濟可行性,主要是針對一個學校的開發(fā)系統(tǒng)的成本與收益相比較。如今是信息化時代,信息化管理可以
17、使實驗室管理更加系統(tǒng)化,全面化、快速化,這樣可以為學校帶來高校的工作效益和經(jīng)濟效益,開發(fā)出本系統(tǒng)可以減少實驗室管理人員人數(shù),而且管理方便,各功能實現(xiàn)快速,數(shù)據(jù)有效的管理。這些效益和管理上的便捷遠遠超過了開發(fā)本系統(tǒng)的成本,所以在經(jīng)濟上具有完全的可行性。3.2.2 技術(shù)可行性本系統(tǒng)開發(fā)工具是Delphi和SQL Server2000。Delphi具有可視化界面,是一種面向?qū)ο蟮恼Z言,簡單易學而且靈活方便,SQL Server 2000是一個安全、可靠的并且支持面向?qū)ο笤O(shè)計的數(shù)據(jù)庫系統(tǒng)。易用性和可維護性也很好。在大二期間,就已學過SQL Server2000。所以,技術(shù)上具有完全的可行性。數(shù)據(jù)庫的設(shè)
18、計和操作是本系統(tǒng)設(shè)計的核心。在大學期間曾經(jīng)學習過軟件工程,也以四人一組完成過有關(guān)的大作業(yè),具備一定的系統(tǒng)分析與設(shè)計能力,熟悉數(shù)據(jù)的設(shè)計與操縱。因此,本系統(tǒng)的實現(xiàn)在技術(shù)上是可行的。第四章 總體設(shè)計4.1 總體設(shè)計目標l 減少老師、管理人員大量繁瑣的工作。l 減少學校在實驗室管理方面的人力和物力的投資。實驗室進程管理系統(tǒng)功能實用。操作簡單,擁有友好的易額面,適用于各類學校的機房進程管理。4.2 功能模塊設(shè)計系統(tǒng)功能模塊包括: 2、 教師機功能:(1) 可以增加和刪除允許運行的程序至許可程序集;(2) 從許可程序集中,指定本節(jié)課允許運行的程序;(3) 可臨時添加本節(jié)可允許運行的程序(不將其加入許可程
19、序集);(4) 增加或修改本節(jié)課允許運行的程序;(5) 許可程序集可以保存登錄用戶名 密碼教師界面管理員界面課程增加課程刪除課程查詢發(fā)布進程集(加入該老師允許進程集)發(fā)布臨時進程集(不加入)查看發(fā)布進程集教師增刪查進程增刪查3、 學生機功能(1) 從教師機獲取本節(jié)課允許運行程序集;(2) 實時監(jiān)控學生機系統(tǒng)運行的程序,發(fā)現(xiàn)未被允許的進程進行警告;(3) 超過一定的時間則關(guān)閉未被允許的進程(4) 系統(tǒng)以托盤程序或系統(tǒng)服務形式運行;提示允許運行的進程集學生機客服端監(jiān)控學生機系統(tǒng)運行的程序制性關(guān)閉未被允許的進程4.3 數(shù)據(jù)庫設(shè)計4.3.2數(shù)據(jù)建模模型是軟件的第一個技術(shù)表示。信息系統(tǒng)的建模是用模型來描
20、述復雜的信息系統(tǒng),使得系統(tǒng)的要求、結(jié)構(gòu)和數(shù)據(jù)變得簡單。設(shè)計者通過描述用戶的需求獲得與用戶的不斷交互,最終對整個系統(tǒng)能全面地把握。建立完整的數(shù)據(jù)模型,完成對信息系統(tǒng)中數(shù)據(jù)的存儲和處理。實驗室進程管理系統(tǒng)比較復雜,為了建立這樣一個復雜系統(tǒng)的模型,并滿足實際對象不斷發(fā)展的需求,在實際設(shè)計中應遵循下列原則:l 準確性:所建立的模型要求能夠正確反映實際的對象,能夠滿足實驗室進程管理工作的實際需求。·l 完整性:指要求模型既能反映對象系統(tǒng)的靜態(tài)特性,同時能夠反映其豐富的動態(tài)特性。l 一致性:要求建立的模型能保證從分析階段到設(shè)計階段的平穩(wěn)過渡。4.3.3各實體關(guān)系模型經(jīng)過分析,可以得出以下各實體之
21、間的E-R圖,(如圖4-6到4-8)teachercourse選課linkprocess上課登記添加教師編號課程編號教師編號登記時間上課時間課程名稱課程編號權(quán)限密碼教師名稱進程名稱進程介紹進程類型進程名稱4.3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 基本定義: 教師與管理員有自己的編號、密碼。在要進入該進程管理系統(tǒng)時,需進行身份認證。不用類型的用戶有不同的權(quán)限。管理員的權(quán)限最大,包括進程的增刪查、教師的增刪改查等。教師有自己的身份認證,可以發(fā)布課程信息,每次課可以添加、刪除臨時進程,同時可以改變自己的登錄密碼。學生在上課時,只能運行管理員發(fā)布的進程以及教師本節(jié)課添加的臨時進程,其余進程不予運行。進程與課程的刪
22、除,若某進程還有課程使用,則不能從進程表中刪除教師表teacher:字段名稱字段格式字段約束字段說明教師編號intprimary key編號自動加一教師名稱varchar(50)密碼varchar(50)Default 0001默認初始密碼為0001權(quán)限charDefault 0默認值為0;0為教師、1為管理員,管理員可進行更改課程表:course字段名稱字段格式字段約束字段說明課程編號intPrimary key標識一個課程,自動加一課程名稱varchar(50)上課時間varchar(200)記錄該課程上課時間以及一些介紹登記時間varchar(30)該課程登記時間上課登記表link:字段
23、名稱字段格式字段約束字段說明教師編號intForeign Key 為教師表teacher里的課程編號intForeign Key為課程表course里的進程名稱varchar(50)Foreign Key為進程表process里的進程表:process字段名稱字段格式字段約束字段說明進程名稱varchar(50)Foreign Key唯一進程介紹varchar(500)進程類型varchar(10)check(proztai in('AP','SP')SP表示系統(tǒng)進程、AP表示應用進程臨時表:tempprocess字段名稱字段格式字段約束字段說明進程名稱varc
24、har(50) 3.3 物理結(jié)構(gòu)設(shè)計a.建立一個數(shù)據(jù)庫,數(shù)據(jù)庫名稱processcreate database processon(name=libraryfilename="d:SQLprocess.mdf",size=20MB,filegrowth=5MB)log on(name=ManaLibLog,filename="d:SQLManaLibLog.ldf",size=5MB,maxsize=20MB,filegrowth=10%)use process在該數(shù)據(jù)庫中建立教師表teacher、課程表course、上課登記表link、進程表proce
25、ss及臨時表tempprocess。一切活動都在該數(shù)據(jù)庫進行了。b.對于primary key數(shù)據(jù)庫會自動建立索引。C對于有建立聚簇索引表的數(shù)據(jù),可以通過聚簇索引存取方法;對于有建立索引表的數(shù)據(jù),可以通過索引存取方法;沒有索引表的數(shù)據(jù),有HASH存取方法可以選擇;最后選擇進行全表掃描得到。4 運行設(shè)計 4.1 數(shù)據(jù)字典設(shè)計a.數(shù)據(jù)項b.數(shù)據(jù)結(jié)構(gòu) 教師=教師編號+教師姓名+密碼+權(quán)限 課程=課程編號+課程名稱+上課時間及介紹+課程登記時間;上課情況=教師證號+課程編號+進程名;進程=進程證號+進程介紹+進程類型 C數(shù)據(jù)存儲 數(shù)據(jù)存儲描述=名稱:ManalibData;存儲在相應的磁盤中,形成計算
26、機文檔,通過鍵盤輸入數(shù)據(jù),存儲在表中。剛建立該管理系統(tǒng)時,進程的創(chuàng)建較頻繁,接下去比較穩(wěn)定,不同教師的不同課程,可能會臨時增加一些進程,一般情況下為進程的查詢。 4.2 安全保密設(shè)計 初定為用戶分為兩大類:教師和學生,教師在教師機上進行進程的管理,學生機上只能運行教師允許的進程,其余的不予運行。教師分為兩種:管理員和普通教師。管理員擁有所有的權(quán)限,包括教師的權(quán)限管理,基本信息的增刪改查;普通教師由管理員授予不用的權(quán)限。只能在上課時修改該節(jié)課所要用到的進程,不能對其他課程的進程進行修改。 學生可以對所上課程允許的進程進行查詢,也只能運行老師所允許的進程。第五章 系統(tǒng)詳細設(shè)計該實驗室進程管理系統(tǒng)是
27、由緯度工作室的所有成員共同完成的,對于個人而言,所完成的任務就是其中的若干個模塊。在本系統(tǒng)的設(shè)計中,我所完成的任務主要有員工信息錄入模塊、員工信息統(tǒng)計模塊、宿舍信息錄入模塊、學生休學及學生復學模塊。詳細設(shè)計如下。5.1 系統(tǒng)運行平臺設(shè)置5.1.1、硬件環(huán)境:處理器:Pentium 800以上;內(nèi)存:256M及以上;硬盤空間:1GB及以上;屏幕分辨率:1024*8005.1.2、軟件環(huán)境:Windows 2000 Professional 或 Windows 2000 Server操作系統(tǒng)。5.2 重要代碼學生機: function GetPathFileofModule(ModuleName:
28、String):String; /枚舉進程所調(diào)用的模塊及進程文件所在路徑var hProcSnap:THandle; /窗體句柄 pProcess:THandle; pe32:TProcessEntry32; /Process32First 得到一個系統(tǒng)快照里第一個進程的信息 buf:array0.MAX_PATH of char; /顯示模塊對應的文件名和路徑 hMod:HMODULE; cbNeeded:DWORD; begin hProcSnap:=CreateToolHelp32SnapShot(TH32CS_SNAPALL,0); /創(chuàng)建快照函數(shù)CreateToolhelp32Sna
29、pshot if hProcSnap=INVALID_HANDLE_VALUE then Exit; pe32.dwSize:=SizeOf(ProcessEntry32); /在調(diào)用Process32First前需要設(shè)置,否則將會失敗 if Process32First(hProcSnap,pe32)=True then /返回第一個進程是否調(diào)用成功 while Process32Next(hProcSnap,pe32)=True do /順序調(diào)用進程 begin if uppercase(pe32.szExeFile)=uppercase(ModuleName) then begin pP
30、rocess:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, pe32.th32ProcessID); if pProcess<>0 then begin if EnumProcessModules(pProcess,hMod,sizeof(hMod),cbNeeded) then begin ZeroMemory(buf,MAX_PATH+1); GetModuleFileNameEx(pProcess,hMod,buf,MAX_PATH+1); Result:=strpas(buf); end;
31、 end; end; end; CloseHandle(hProcSnap);end;$R *.dfmprocedure TForm1.get();varProcessList :Thandle;pe :TPROCESSENTRY32;found:boolean;Summ: Word;NewItem: TListItem;begin / ProcessEnumListView1.Items.Clear;ProcessList:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); /創(chuàng)建快照函數(shù)CreateToolhelp32Snapshotpe.dw
32、Size:=sizeof(TPROCESSENTRY32); /在調(diào)用Process32First前需要設(shè)置,否則將會失敗found := Process32First(ProcessList, pe); /Process32First 得到一個系統(tǒng)快照里第一個進程的信息Summ := 0;while found do begin Summ := Summ + 1; NewItem := ListView1.Items.Add; /在ListView1顯示 /NewItem.ImageIndex := -1; temp1:=ExtractFileName(pe.szExeFile); /獲取進
33、程名賦給一個變量 / temp1:='WINWORD.EXE' Result1:=1; Result1:=Search(temp1); if(Result1=0) then begin temp2:=temp1; MessageDlg('警告!您開啟了在這節(jié)課不被允許的程序,我們將在10秒后自動關(guān)閉該程序!',mtWarning,mbOk,0); /showMessage('警告!您開啟了在這節(jié)課不被允許的程序,我們將在10秒后自動關(guān)閉該程序!'); edit1.Text:='warning!'+temp1; break; end
34、; NewItem.Caption :=ExtractFileName(temp1);/返回進程名稱 NewItem.subItems.Add(FormatFloat('00', Summ);/返回序號 NewItem.subItems.Add(IntToStr(pe.th32ProcessID);/返回進程ID / NewItem.SubItems.Add(IntToStr(lppe tThreads); /返回進程線程數(shù) NewItem.SubItems.Add(GetPathFileofModule(ExtractFileName(pe.szExeFile); /返回每個
35、進程文件所在路徑 found := Process32Next(ProcessList, pe); edit1.Text:='當前系統(tǒng)共有'+''+IntToStr(Summ)+''+'個進程' ;end;CloseHandle(ProcessList);end;function TForm1.KillTask(ExeFileName: string): Integer;const PROCESS_TERMINATE = $0001; var ContinueLoop: boolean; FSnapshotHandle: THan
36、dle; FProcessEntry32: TProcessEntry32; begin Result := 0; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if (Upper
37、Case(ExtractFileName(FProcessEntry32.szExeFile) = UpperCase(ExeFileName) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName) then Result := Integer(TerminateProcess( OpenProcess(PROCESS_TERMINATE,BOOL(0),FProcessEntry32.th32ProcessID),0); ContinueLoop := Process32Next(FSnapshotHandle,
38、FProcessEntry32); end; CloseHandle(FSnapshotHandle);end; procedure TForm1.Timer3Timer(Sender: TObject);begin Result:=KillTask(temp2); if(Result<>0)then begin showMessage('自動shanchu成功'); end;end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);beginMessageDlg('
39、;上課期間該軟件不允許被關(guān)閉!',mtWarning,mbOK,1);/canClose:=false;end;function TForm1.Search(ExeFileName: string):Integer;varrs:Integer;begin with adostoredproc1 do begin close; procedurename:='proc_tempprocess;1' parameters.Refresh; parameters.ParamByName('proname').Value:=ExeFileName; parame
40、ters.ParamByName('rs').Value:=rs; ExecProc; / open; end; Search:=adostoredproc1.Parameters.ParamValues'rs'end;end.教師機:教師添加:begin IF edit2.Text ='' then showmessage('教師姓名不能為空') else begin with AdoQuery1 do BEGIN close; SQL.clear; SQL.Add('insert into teacher(usenam
41、e,password,powers)'); SQL.Add('values(:name,:pass,:powers)'); Parameters.parambyname('name').value:=edit2.text; if(edit3.text='') then Parameters.Parambyname('pass').value:='001' else Parameters.Parambyname('pass').value:=edit3.text; if(radiogroup1
42、.ItemIndex=0) then Parameters.parambyname('powers').value:='0' else Parameters.parambyname('powers').value:='1' ExecSQL; close; SQL.Clear; SQL.Add('select * from teacher'); open; label9.Caption :='記錄總數(shù):'+inttostr(recordcount); end ; Edit2.Text:='
43、39; Edit3.Text:='' showmessage('教師添加成功!'); end; end;教師刪除:begin if edit4.Text='' then showmessage('先進行查找,再刪除') else begin if adoquery1.recordcount<>0 then begin if messagedlg('確定要刪除所有符合條件的記錄嗎?',mtconfirmation,mbokcancel,0)=mrok then begin adoquery1.First
44、; while not adoquery1.eof do begin id:=adoquery1.FieldByName('useno').Asstring ; with adoquery2 do begin close; sql.Clear ; sql.Add('select * from link'); sql.add('where useno=:id') ; parameters.ParamByName('id').Value:=id; open ; end; if adoquery2.recordcount>0 th
45、en begin if messagedlg(id+'有課程安排,是否跳過該記錄繼續(xù)刪除?',mtconfirmation,mbokcancel,0)=mrok then adoquery1.Next else exit;end else begin adoquery1.delete;adoquery1.Next;end; end; if messagedlg('已經(jīng)刪除記錄',mtinformation,mbok,0)=mrok then begin adoquery1.close; adoquery1.sql.Clear ; adoquery1.sql.Ad
46、d('select * from teacher'); adoquery1.open ; label10.Caption :='記錄總數(shù):'+inttostr(adoquery1.recordcount); edit4.Text:='' end; end; end; end;end;教師查詢:/模糊查詢var tt:string; i:shortint;begin if edit9.text='' then showmessage('請輸入搜索詞') else begin tt:=edit9.Text; for i
47、:=0 to length(tt) do if(tti=chr(39) then begin delete(tt,i,1);end; edit9.Text:=tt; with adoquery1 do begin close; sql.Clear ; sql.Add('select * from teacher'); sql.Add('where usename+powers like ''%'+edit9.Text +'%'''); open ; label9.Caption :='記錄總數(shù):'+
48、inttostr(recordcount); end; end;end;進程搜索:var tt:string; i:shortint;begin if edit9.text='' then showmessage('請輸入搜索詞') else begin tt:=edit9.Text; for i:=0 to length(tt) do if(tti=chr(39) then begin delete(tt,i,1);end; edit9.Text:=tt; with adoquery1 do begin close; sql.Clear ; sql.Add(&
49、#39;select distinct proname,proztai,proshow from process'); sql.Add('where proname+proshow+proztai like ''%'+edit9.Text +'%'''); open ; label10.Caption :='總數(shù):'+inttostr(recordcount); end; end;end;進程刪除:var id:string;begin if edit9.Text='' then showm
50、essage('先進行查找,再刪除') else begin if adoquery1.recordcount<>0 then begin if messagedlg('確定要刪除所有符合條件的記錄嗎?',mtconfirmation,mbokcancel,0)=mrok then begin adoquery1.First ; while not adoquery1.eof do begin if adoquery1.FieldByName('proztai').AsString<>'AP' then b
51、egin showmessage('刪除停止,不能刪除系統(tǒng)進程!'); exit;end; id:=adoquery1.FieldByName('proname').AsString ; with adoquery2 do begin close; sql.Clear ; sql.Add('select * from link'); sql.add('where proname=:name') ; parameters.ParamByName('name').Value:=id; open ; end; if adoquery2.RecordCount>0 then beg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級數(shù)學計算題專項練習匯編及答案
- 春節(jié)餐飲盛宴之道
- 實習班主任班級工作參考計劃
- 國內(nèi)專利培訓課件知識
- 二零二五年度國有企業(yè)股權(quán)認購與改革合作協(xié)議3篇
- 臨床頸椎A(chǔ)CAF 技術(shù)步驟要點
- 國際兒童廣播電視日
- 主題三:紅色之美 第16課《鄉(xiāng)村振興-戰(zhàn)旗村的崛起》(說課稿)川教版四年級上冊綜合實踐活動
- 貴州貴陽市普通中學2024-2025學年高一上學期期末監(jiān)測歷史試題(含答案)
- 冀教版小學信息技術(shù)四年級上冊《第1課 制作月歷》說課稿
- 血細胞分析報告規(guī)范化指南2020
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應用實踐指導材料之7:“5領(lǐng)導作用-5.1領(lǐng)導作用和承諾”(雷澤佳編制-2025B0)
- 《中國近現(xiàn)代史綱要(2023版)》課后習題答案合集匯編
- 綠色施工措施措施 四節(jié)一環(huán)保
- TCSES 71-2022 二氧化碳地質(zhì)利用與封存項目泄漏風險評價規(guī)范
- GB/T 8561-2001專業(yè)技術(shù)職務代碼
- GB/T 7661-2009光學零件氣泡度
- GB/T 4745-2012紡織品防水性能的檢測和評價沾水法
- GB/T 16857.1-2002產(chǎn)品幾何量技術(shù)規(guī)范(GPS)坐標測量機的驗收檢測和復檢檢測第1部分:詞匯
- GB 28261-2012安全氣囊氣體發(fā)生器用點火具生產(chǎn)安全技術(shù)條件
- RT qPCR(實時熒光定量PCR)課件
評論
0/150
提交評論