計(jì)算機(jī)畢業(yè)論文:Delphi5.0中應(yīng)用WSH技術(shù)
時(shí)間:2022-10-08 03:55:00
導(dǎo)語(yǔ):計(jì)算機(jī)畢業(yè)論文:Delphi5.0中應(yīng)用WSH技術(shù)一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要WSH是一種基于32位Windows平臺(tái)、應(yīng)用于ActiveX腳本引擎、與編程語(yǔ)言無(wú)關(guān)的腳本宿主。本文通過(guò)幾個(gè)實(shí)例介紹了如何在delphi5.0中應(yīng)用wsh技術(shù)。
關(guān)鍵詞DelphiiWSH腳本執(zhí)行和輔助功能
1引言
微軟公司的WSH(WindowsScriptingHost)是一種基于32位Windows平臺(tái)、應(yīng)用于ActiveX腳本引擎、與編程語(yǔ)言無(wú)關(guān)的腳本宿主。WSH具有良好的腳本語(yǔ)言支持特性,它支持VBScript、javascript、Perl、REXX等各種腳本語(yǔ)言。WSH的運(yùn)行方式較為靈活,既可以在Windows中運(yùn)行,也可以在DOS命令模式下啟動(dòng)。微軟已經(jīng)在Windows98、Windows2000中內(nèi)置了WSH技術(shù)。
WSH對(duì)象模型主要包含了兩類ActiveX接口:腳本執(zhí)行和輔助功能。每類接口提供多種WSH對(duì)象,各對(duì)象有自己的方法和屬性。腳本執(zhí)行接口提供了許多屬性和方法。這類接口允許腳本操作處理WSH,在屏幕上顯示特定信息,執(zhí)行一些基本功能(如創(chuàng)建Word應(yīng)用程序?qū)ο螅?。輔助功能接口也提供了豐富的屬性和方法供用戶使用。利用這些屬性和方法我們可以進(jìn)行各種操作,例如:映射網(wǎng)絡(luò)驅(qū)動(dòng)器、連接遠(yuǎn)程打印機(jī)、獲取編輯系統(tǒng)環(huán)境變量(如用戶名、計(jì)算機(jī)名、域名等等)、操作注冊(cè)表等。系統(tǒng)管理員可以利用這些輔助功能創(chuàng)建簡(jiǎn)單的登錄腳本。程序編寫者可以利用這些由WSH提供的對(duì)象接口在基于Windows的平臺(tái)上執(zhí)行各種自動(dòng)化任務(wù),例如:?jiǎn)?dòng)Word、Excel、Powerpoint任務(wù),打開(kāi)CAD文件等。
在Delphi5.0中應(yīng)用WSH技術(shù),不但可以利用WSH的強(qiáng)大功能增強(qiáng)應(yīng)用程序的性能,還可以簡(jiǎn)化應(yīng)用程序設(shè)計(jì),使編程工作更為簡(jiǎn)單。某些原本只能由WindowsAPI函數(shù)完成的工作現(xiàn)在可以使用更為簡(jiǎn)單明了的WSH完成。WSH為用戶提供了多個(gè)對(duì)象,例如:WshShortcut、WshShell、WshArguments、WshUrlShortcut、Automation、WshEnvironment等等。我們可以利用它們進(jìn)行各種應(yīng)用。
2WSH應(yīng)用實(shí)例
2.1映射網(wǎng)絡(luò)驅(qū)動(dòng)器
在實(shí)際開(kāi)發(fā)MIS系統(tǒng)時(shí),我們?cè)?jīng)碰到這樣一個(gè)問(wèn)題:該系統(tǒng)由企業(yè)內(nèi)部30個(gè)不同的部門使用,由于管理的需要,各部門的數(shù)據(jù)除了通過(guò)專用數(shù)據(jù)庫(kù)接口提交到服務(wù)器以實(shí)現(xiàn)數(shù)據(jù)共享外,還須由系統(tǒng)自動(dòng)將各部門數(shù)據(jù)以專門的HTML文件格式發(fā)送到指定的服務(wù)器目錄下。服務(wù)器上對(duì)應(yīng)設(shè)置了30個(gè)不同的共享目錄。服務(wù)器上的共享目錄分別映射為本地各部門的指定驅(qū)動(dòng)器如W:)。顯然,逐個(gè)部門進(jìn)行手工映射比較繁瑣。比較嚴(yán)重的情況是,如果用戶由于誤操作斷開(kāi)該映射,將導(dǎo)致應(yīng)用系統(tǒng)無(wú)法運(yùn)行。比較好的做法是在系統(tǒng)啟動(dòng)時(shí)自動(dòng)映射網(wǎng)絡(luò)驅(qū)動(dòng)器,WSH為我們提供了非常簡(jiǎn)單的實(shí)現(xiàn)方法。下面是一個(gè)示例性程序:
procedureTForm1.FormCreate(Sender:TObject);
var
oWshNetwork:variant;
begin
oWshNetwork:=CreateOleObject(''''work'''');
oWshNetwork.MapNetworkDrive(''''w:'''',''''\\ezss\ydmis'''',''''True'''',''''administrator'''',''''xyz'''');
End;
程序首先創(chuàng)建基于WSH的OLE對(duì)象,然后映射服務(wù)器ezss上的共享目錄ydmis為W:。MapNetworkDrive方法的語(yǔ)法格式為:
MapNetworkDrive(strLocalName,strRemoteName,[bUpdateProfile],[strUser],[strPassword])
各參數(shù)含義簡(jiǎn)要說(shuō)明如下:
strLocalName映射到本地的驅(qū)動(dòng)器名稱。
strRemoteName映射的遠(yuǎn)程共享名。
bUpdateProfile如果本參數(shù)設(shè)置為TRUE,這種映射將存儲(chǔ)在用戶Windows系統(tǒng)的profiles文件夾下作為用戶配置保留。
strUser、strPassword指定受托共享的用戶名和密碼。
若要斷開(kāi)該映射,可以使用RemoveNetworkDrive方法,例如oWshNetwork.RemoveNetworkDrive(''''w:'''')。
2.2創(chuàng)建應(yīng)用程序快捷方式圖標(biāo)
WSH可以幫助我們非常容易地創(chuàng)建應(yīng)用程序快捷方式圖標(biāo),這使得我們能夠自由地在安裝程序中選擇程序快捷圖標(biāo)的創(chuàng)建方式。至于應(yīng)用程序快捷方式圖標(biāo)放置在哪個(gè)地方,則完全由我們來(lái)決定。實(shí)際上,WSH允許我們自由地將應(yīng)用程序快捷方式圖標(biāo)放置在桌面、開(kāi)始菜單、程序組、發(fā)送到、網(wǎng)上鄰居、我的文檔等各種地方。在WindowsNT中,還可以放置在所有用戶的啟動(dòng)組、開(kāi)始菜單或桌面上。實(shí)際操作時(shí),WSH首先利用WshSpecialFolders.Item("strFolderName")屬性返回指定文件夾(如桌面)的路徑,然后利用CreateShortcut方法創(chuàng)建快捷方式。當(dāng)然,我們也可以指定該快捷方式的熱鍵、目標(biāo)路徑、工作路徑、窗口狀態(tài)等等。下面是一個(gè)示例:
procedureTForm1.Button1Click(Sender:TObject);
var
oWshShell,strShortcut,oMyShortcut:variant;
begin
oWshShell:=CreateoleObject(''''Wscript.Shell'''');
strShortcut:=oWshShell.SpecialFolders.Item(''''DeskTop'''');
oMyShortcut:=oWshShell.CreateShortcut(strShortcut+''''\MIS輔助教學(xué).lnk'''');
oMyShortCut.Hotkey:=''''ALT+CTRL+C'''';
oMyShortcut.TargetPath:=''''d:\mis\mis.exe'''';
oMyShortCut.WorkingDirectory="d:\mis\"
oMyShortCut.WindowStyle=1
oMyShortCut.Save;
end;
上述程序代碼在桌面創(chuàng)建了一個(gè)“MIS輔助教學(xué)”應(yīng)用程序快捷方式圖標(biāo)。窗口狀態(tài)(WindowStyle)設(shè)置為普通,Save()方法用于保存該快捷方式圖標(biāo)。另外,我們可以根據(jù)需要將Item("strFolderName")中的strFolderName修改為AllUsersDesktop、AllUsersStartMenu、AllUsersPrograms、AllUsersStartup、Desktop、Favorites、Fonts、MyDocuments、NetHood、PrintHood、Programs、Recent、SendTo、StartMenu、Startup等串值,以便在不同的地方創(chuàng)建應(yīng)用程序快捷方式圖標(biāo)。
2.3實(shí)現(xiàn)Word、Powerpoint、Excel自動(dòng)化盡管Delphi5.0已經(jīng)提供了Office組件,也提供了這方面的應(yīng)用實(shí)例,但在處理一個(gè)已經(jīng)存在的Office文檔時(shí)仍然不夠方便。WSH可以靈活地處理Office文檔,這使得我們幾乎可以在應(yīng)用程序中無(wú)縫集成Office功能。在創(chuàng)建基于Office應(yīng)用程序的OLE對(duì)象后,編程人員可以利用Office錄制宏的功能,非常方便地獲得有關(guān)處理命令,減少了開(kāi)發(fā)難度。這樣一來(lái),在應(yīng)用程序中實(shí)現(xiàn)Word、Powerpoint、Excel自動(dòng)化,就非常容易了。下面是一個(gè)處理Word文檔的簡(jiǎn)單示例:
procedureTForm1.Button1Click(Sender:TObject);
var
oWord:variant;
begin
OWord:=createoleobject(''''word.application'''');
oWord.visible:=false;
oWord.documents.open(''''d:\scgl\mr_10.doc'''');
oWord.documents.item(1).saveas(''''d:\scgl\htms\mr_10.html'''',8);
oWord.quit;
end;
上述代碼的主要作用是將mr_10.doc文件另存為Web頁(yè),適用于Word97、Word2000。請(qǐng)注意saveas()中的參數(shù)8,它用于標(biāo)識(shí)HTML文檔格式。如果不使用該參數(shù),保存為Web頁(yè)后可能全是亂碼。
2.4操作注冊(cè)表
Delphi5.0已經(jīng)提供了操作注冊(cè)表的方法(使用TRegistry.Create),但使用WSH的處理方法更為簡(jiǎn)單明了。WSH通過(guò)RegRead、RegDelete、RegWrite方法,可以對(duì)注冊(cè)表的5個(gè)分支部分,即HKEY_CURRENT_USER(HKCU)、HKEY_LOCAL_MACHINE(HKLM)、HKEY_CLASSES_ROOT(HKCR)、HKEY_USERS、HKEY_CURRENT_CONFIG,進(jìn)行操作。注意,括號(hào)內(nèi)為縮寫形式,實(shí)際應(yīng)用時(shí),我們既可以使用全稱,也可以使用縮寫。下面來(lái)看一個(gè)示例程序:
procedureTForm1.Button1Click(Sender:TObject);
var
oWshReg:variant;
begin
oWshReg:=CreateOleObject(''''Wscript.Shell'''');
oWshReg.RegWrite(''''HKCU\WSHSample\Value'''',10,''''REG_BINARY'''');
end;
上述代碼在注冊(cè)表的HKEY_CURRENT_USER分支下創(chuàng)建主鍵WSHSample,并在該主鍵下創(chuàng)建二進(jìn)制值Value,其數(shù)值為10。RegWrite方法的語(yǔ)法格式為:RegWrite(strName,anyValue,[strType])。其中,strType參數(shù)用于指定鍵值的數(shù)據(jù)類型,可以是REG_DWORD、REG_BINARY、REG_SZ等等。
3結(jié)束語(yǔ)
總的看來(lái),WSH使程序代碼容易編寫、易于閱讀,還可以實(shí)現(xiàn)一些特殊功能。在使用Delphi5.0開(kāi)發(fā)應(yīng)用系統(tǒng)時(shí),我們可以適當(dāng)使用WSH技術(shù)。
參考文獻(xiàn)
1CharlieCalvert,Delphi4編程技術(shù)內(nèi)幕,機(jī)械工業(yè)出版社,1999
2Micros
oftCorporation,動(dòng)態(tài)HTML參考和開(kāi)發(fā)應(yīng)用大全,人民郵電出版社,2000.3
熱門標(biāo)簽
計(jì)算機(jī)論文 計(jì)算機(jī)畢業(yè)論文 計(jì)算機(jī)技術(shù)論文 計(jì)算機(jī)教育論文 計(jì)算機(jī)專業(yè)論文 計(jì)算機(jī)教學(xué)論文 計(jì)算機(jī)基礎(chǔ)論文 計(jì)算機(jī)專業(yè)畢業(yè)論文 計(jì)算機(jī)應(yīng)用論文 計(jì)算化學(xué)論文 心理培訓(xùn) 人文科學(xué)概論