- 相關推薦
如何快速地從網頁中獲得Email地址
摘 要 WSH是一種基于32位Windows平臺、于ActiveX腳本引擎、與編程語言無關的腳本宿主。本文通過幾個實例介紹了如何在Delphi5.0中應用WSH技術。關鍵詞 Delphii WSH 腳本執行和輔助功能
1 引言
微軟公司的WSH(Windows Scripting Host)是一種基于32位Windows平臺、應用于ActiveX腳本引擎、與編程語言無關的腳本宿主。WSH具有良好的腳本語言支持特性,它支持VBScript、javascript、Perl、REXX等各種腳本語言。WSH的運行方式較為靈活,既可以在Windows中運行,也可以在DOS命令模式下啟動。微軟已經在Windows98、Windows2000中內置了WSH技術。
WSH對象模型主要包含了兩類ActiveX接口:腳本執行和輔助功能。每類接口提供多種WSH對象,各對象有自己的和屬性。腳本執行接口提供了許多屬性和方法。這類接口允許腳本操作處理WSH,在屏幕上顯示特定信息,執行一些基本功能(如創建Word應用程序對象)。輔助功能接口也提供了豐富的屬性和方法供用戶使用。利用這些屬性和方法我們可以進行各種操作,例如:映射驅動器、連接遠程打印機、獲取編輯系統環境變量(如用戶名、機名、域名等等)、操作注冊表等。系統管理員可以利用這些輔助功能創建簡單的登錄腳本。程序編寫者可以利用這些由WSH提供的對象接口在基于Windows的平臺上執行各種自動化任務,例如:啟動Word、Excel、Powerpoint任務,打開CAD文件等。
在Delphi5.0中應用WSH技術,不但可以利用WSH的強大功能增強應用程序的性能,還可以簡化應用程序設計,使編程工作更為簡單。某些原本只能由Windows API函數完成的工作現在可以使用更為簡單明了的WSH完成。WSH為用戶提供了多個對象,例如:WshShortcut、 WshShell、 WshArguments、 WshUrlShortcut、 Automation、WshEnvironment等等。我們可以利用它們進行各種應用。
2 WSH應用實例
2.1 映射網絡驅動器
在實際開發MIS系統時,我們曾經碰到這樣一個:該系統由內部30個不同的部門使用,由于管理的需要,各部門的數據除了通過專用數據庫接口提交到服務器以實現數據共享外,還須由系統自動將各部門數據以專門的HTML文件格式發送到指定的服務器目錄下。服務器上對應設置了30個不同的共享目錄。服務器上的共享目錄分別映射為本地各部門的指定驅動器如W:)。顯然,逐個部門進行手工映射比較繁瑣。比較嚴重的情況是,如果用戶由于誤操作斷開該映射,將導致應用系統無法運行。比較好的做法是在系統啟動時自動映射網絡驅動器,WSH為我們提供了非常簡單的實現方法。下面是一個示例性程序:
procedure TForm1.FormCreate(Sender: TObject);
var
oWshNetwork:variant ;
begin
oWshNetwork:=CreateOleObject('Wscript.Network');
oWshNetwork.MapNetworkDrive('w:','\\ezss\ydmis','True','administrator','xyz');
End;
程序首先創建基于WSH的OLE對象,然后映射服務器ezss上的共享目錄ydmis為W:。MapNetworkDrive方法的語法格式為:
MapNetworkDrive(strLocalName,strRemoteName,[bUpdateProfile],[strUser],[strPassword])
各參數含義簡要說明如下:
strLocalName 映射到本地的驅動器名稱。
strRemoteName 映射的遠程共享名。
bUpdateProfile 如果本參數設置為TRUE,這種映射將存儲在用戶Windows系統的profiles文件夾下作為用戶配置保留。
strUser、strPassword 指定受托共享的用戶名和密碼。
若要斷開該映射,可以使用RemoveNetworkDrive方法,例如oWshNetwork.RemoveNetworkDrive('w:')。
2.2 創建應用程序快捷方式圖標
WSH可以幫助我們非常容易地創建應用程序快捷方式圖標,這使得我們能夠自由地在安裝程序中選擇發布程序快捷圖標的創建方式。至于應用程序快捷方式圖標放置在哪個地方,則完全由我們來決定。實際上,WSH允許我們自由地將應用程序快捷方式圖標放置在桌面、開始菜單、程序組、發送到、網上鄰居、我的文檔等各種地方。在WindowsNT中,還可以放置在所有用戶的啟動組、開始菜單或桌面上。實際操作時,WSH首先利用WshSpecialFolders.Item("strFolderName")屬性返回指定文件夾(如桌面)的路徑,然后利用CreateShortcut方法創建快捷方式。當然,我們也可以指定該快捷方式的熱鍵、目標路徑、工作路徑、窗口狀態等等。下面是一個示例:
procedure TForm1.Button1Click(Sender: TObject);
var
oWshShell,strShortcut,oMyShortcut:variant ;
begin
oWshShell:=CreateoleObject('Wscript.Shell');
strShortcut:=oWshShell.SpecialFolders.Item('DeskTop');
oMyShortcut:=oWshShell.CreateShortcut(strShortcut+'\MIS輔助教學.lnk');
oMyShortCut.Hotkey:='ALT+CTRL+C';
oMyShortcut.TargetPath:= 'd:\mis\mis.exe';
oMyShortCut.WorkingDirectory="d:\mis\"
oMyShortCut.WindowStyle=1
oMyShortCut.Save;
end;
上述程序代碼在桌面創建了一個“MIS輔助教學”應用程序快捷方式圖標。窗口狀態(WindowStyle)設置為普通,Save()方法用于保存該快捷方式圖標。另外,我們可以根據需要將Item("strFolderName")中的strFolderName修改為AllUsersDesktop、AllUsersStartMenu、AllUsersPrograms、AllUsersStartup、Desktop、Favorites、Fonts、MyDocuments、NetHood、PrintHood、Programs、Recent、SendTo、StartMenu、Startup等串值,以便在不同的地方創建應用程序快捷方式圖標。
2.3 實現Word、Powerpoint、Excel自動
盡管Delphi5.0已經提供了Office組件,也提供了這方面的應用實例,但在處理一個已經存在的Office文檔時仍然不夠方便。WSH可以靈活地處理Office文檔,這使得我們幾乎可以在應用程序中無縫集成Office功能。在創建基于Office應用程序的OLE對象后,編程人員可以利用Office錄制宏的功能,非常方便地獲得有關處理命令,減少了開發難度。這樣一來,在應用程序中實現Word、Powerpoint、Excel自動化,就非常容易了。下面是一個處理Word文檔的簡單示例:
procedure TForm1.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頁,適用于Word97、Word2000。請注意saveas()中的參數8,它用于標識HTML文檔格式。如果不使用該參數,保存為Web頁后可能全是亂碼。
2.4 操作注冊表
Delphi5.0已經提供了操作注冊表的方法(使用TRegistry.Create),但使用WSH的處理方法更為簡單明了。WSH通過RegRead、RegDelete、RegWrite方法,可以對注冊表的5個分支部分,即HKEY_CURRENT_USER(HKCU)、HKEY_LOCAL_MACHINE(HKLM)、HKEY_CLASSES_ROOT(HKCR)、HKEY_USERS 、HKEY_CURRENT_CONFIG ,進行操作。注意,括號內為縮寫形式,實際應用時,我們既可以使用全稱,也可以使用縮寫。下面來看一個示例程序:
procedure TForm1.Button1Click(Sender: TObject);
var
oWshReg:variant ;
begin
oWshReg:=CreateOleObject('Wscript.Shell');
oWshReg.RegWrite('HKCU\WSHSample\Value',10,'REG_BINARY');
end;
上述代碼在注冊表的HKEY_CURRENT_USER分支下創建主鍵WSHSample,并在該主鍵下創建二進制值Value,其數值為10。RegWrite方法的語法格式為:RegWrite(strName,anyValue,[strType])。其中,strType參數用于指定鍵值的數據類型,可以是REG_DWORD、REG_BINARY、REG_SZ等等。
3 結束語
總的看來,WSH使程序代碼容易編寫、易于閱讀,還可以實現一些特殊功能。在使用Delphi5.0開發應用系統時,我們可以適當使用WSH技術。
1 Charlie Calvert,Delphi4編程技術內幕,機械出版社,1999
2 Micros
oft Corporation,動態HTML參考和開發大全,人民郵電出版社,2000.3
【如何快速地從網頁中獲得Email地址】相關文章:
商務英語email高手 如何報盤03-18
論怎樣獲得歌唱中的高音03-08
如何讓學生快速進入地理課堂03-09
快速表現能力在環藝中的應用03-06
試論文學創作中靈感的生成與獲得03-06
企業如何有效地進行融資03-19
探析快速表現能力在環藝中的應用03-25
asp技術在交互式網頁設計中的運用03-27
簡析校園網中IP地址的動態分配03-15