WSH使得操作任何安裝在計(jì)算機(jī)上的自動(dòng)化對(duì)象成為可能,除了可以通過FileSystemObject對(duì)象訪問文件系統(tǒng)外,也允許進(jìn)行其他的一些操作,例如處理WSH和ActiveX對(duì)象、設(shè)定和去除打印機(jī)和遠(yuǎn)程驅(qū)動(dòng)器、操控注冊(cè)表、創(chuàng)建Windows和Internet的快捷方式、以及訪問Windows NT Active Directory服務(wù)。
WSH對(duì)象模型由下列三種主要對(duì)象組成:WScript、WshShell和WshNetwork。
運(yùn)行其他應(yīng)用程序
這里提供了從Excel中啟動(dòng)外部應(yīng)用程序的一種方法。例如,下面的程序啟動(dòng)記事本:
Sub RunNotepad() Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.Run "Notepad" Set WshShell = NothingEnd Sub |
將相關(guān)語(yǔ)句修改為下列語(yǔ)句,分別可以用來啟動(dòng)計(jì)算器或?yàn)g覽器:
WshShell.Run "Calc"WshShell.Run "Explorer" |
可以打開帶有指定文檔的應(yīng)用程序而不是打開一個(gè)空的應(yīng)用程序窗口,例如:
Sub OpenTxtFileInNotepad() Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.Run "Notepad C:\Phones.txt" Set WshShell = NothingEnd Sub |
下面的過程打開MS-DOS窗口并打印當(dāng)前目錄下的文件列表:
Sub RunDOSCommand() Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.Run ("Command /c Dir >1pt1:")End Sub |
創(chuàng)建快捷方式
可以使用Shell對(duì)象創(chuàng)建應(yīng)用程序或者網(wǎng)頁(yè)的快捷方式。WshShell對(duì)象有一個(gè)CreateShortcut方法,返回快捷方式對(duì)象:
Set myShortcut=WshShell.CreateShortcut(Pathname) |
其中,參數(shù)Pathname是指定快捷文件完整路徑的字符串。所有快捷方式文件都帶有擴(kuò)展名.Ink,并且該擴(kuò)展名必須包括在文件路徑名中。
ShortCut對(duì)象的屬性和方法介紹如下:
(1)TargetPath屬性
代表可執(zhí)行文件的路徑。例如:
WshShell.TargetPath=ActiveWorkbook.FullName |
(2)WindowStyle屬性
指定快捷方式使用的窗口類型。其中1代表普通窗口,3代表最大化窗口,7代表最小化窗口。例如,
WshShell.WindowStyle=1 |
(3)HotKey屬性
指定鍵盤快捷方式(例如Alt+f、Shift+g、Ctrl+Shift+z,等等),例如,
WshShell.HotKey="Ctrl+Alt+W" |
(4)IconLocation屬性
指定快捷方式圖標(biāo)的位置。因?yàn)閳D標(biāo)文件中通常不止一個(gè)圖標(biāo),所以應(yīng)該提供圖標(biāo)文件的路徑,并且后面標(biāo)明圖標(biāo)在文件里的索引號(hào)。如果不指定,則Windows使用缺省的圖標(biāo),例如
WshShell.IconLocation="notepad.exe,0" |
(5)Description屬性
包含一個(gè)描述快捷方式的字符串。例如,
WshShell.Description="Wordware Web Site" |
(6)WorkingDirectory屬性
指定快捷方式的工作目錄。例如:
strWorkDir=WshShell.SpecialFolders("Desktop")WshShell.WorkingDirectory=strWorkDir |
(7)Save方法
這是ShortCut對(duì)象的唯一方法。在使用CreateShortcut方法創(chuàng)建快捷方式對(duì)象并且設(shè)置該快捷方式的屬性后,必須使用Save方法將快捷方式保存到磁盤上。
下面的過程創(chuàng)建WshShell對(duì)象并使用CreateShortcut方法創(chuàng)建兩個(gè)快捷方式:一個(gè)為當(dāng)前工作簿的快捷方式,另一個(gè)為到Wordware Publishing頁(yè)面的快捷方式。這兩個(gè)快捷方式均放置在用戶桌面上。
Sub CreateShortcut() '在桌面創(chuàng)建兩個(gè)快捷方式 Dim WshShell As Object Dim objShortcut As Object Set WshShell = CreateObject("WScript.Shell") '創(chuàng)建一個(gè)Internet快捷方式 Set objShortcut = _ WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") _& "\Wordware.url") objShortcut.TargetPath = "http://www.wordware.com" objShortcut.Save '創(chuàng)建一個(gè)文件快捷方式 Set objShortcut = _ WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") & _ "\" & ActiveWorkbook.Name & ".lnk") With objShortcut .TargetPath = ActiveWorkbook.FullName .WindowStyle = 7 .Save End With Set objShortcut = Nothing Set WshShell = NothingEnd Sub |
CreateShortcut過程使用WshShell對(duì)象的SpecialFolders屬性返回Windows桌面的路徑。
提示 可以使用SpecialFolders屬性查找計(jì)算機(jī)中特殊文件夾的位置。例如下列特殊文件夾:AllUsersDesktop(所有用戶桌面)、AllUsersStartMenu(所有用戶開始菜單)、AllUsersPrograms(所有用戶程序)、AllUsersStartup(所有用戶啟動(dòng))、Desktop(桌面)、Favorites(收藏夾)、Fonts(字體)、MyDocuments(我的文檔)、NetHood(網(wǎng)絡(luò)連接)、PrintHood(打印機(jī)連接)、Programs(程序)、Recent(最近)、SendTo(發(fā)送到)、StartMenu(開始菜單)、Startup(啟動(dòng))和Templates(模板)。如果請(qǐng)求的特殊文件夾不可用,則SpecialFolders屬性返回一個(gè)空字符串。
聯(lián)系客服