===================================
VBS例子講解--1: 用 run運(yùn)行文件 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" set shl="nothing"
VBS例子講解--2: 用 FSO復(fù)制文件 Set shl = CreateObject("Scripting.FileSystemObject") shl.CopyFile "c:\1.txt","d:\" set shl = nothing
=========================================================
CreateObject
描述創(chuàng)建并返回對象的引用。語法
CreateObject(class)
class 參數(shù)使用語法 servername.typename,有以下部分:
部分描述 servername 提供對象的應(yīng)用程序名稱。 typename 要?jiǎng)?chuàng)建的對象類型或類。
說明 Automation 服務(wù)器至少提供一種對象類型。例如,字處理應(yīng)用程序可以提供應(yīng)用程序?qū)ο、文檔對象和工具條對象。要?jiǎng)?chuàng)建 Automation 對象,將 CreateObject 函數(shù)返回的對象賦值給某對象變量:
Dim ExcelSheet Set ExcelSheet = CreateObject("Excel.Sheet") ' 使 Excel 在整個(gè) Application 對象中都可見。 ExcelSheet.Application.Visible = True
' 將一些文本放入工作表的第一個(gè)單元格中。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1" ' 保存工作表。 ExcelSheet.SaveAs "C:\TEST.XLS" ' 關(guān)閉 Excel,使 Quit 方法處于 Application 對象中。 ExcelSheet.Application.Quit ' 釋放對象變量。 Set ExcelSheet = Nothing
================================== Set
將對象引用賦給一個(gè)變量或?qū)傩裕蛘邔ο笠门c事件關(guān)聯(lián)。
createobject("WScript.Shell").run"regedit.exe"
和下面的 3句句有同樣效果。
set shl="createobject"("WScript.Shell") shl.run"regedit.exe" set shl="nothing"
但如果我要使用多個(gè) CreateObject對象的時(shí)候,就要寫很多個(gè) CreateObject("WScript.Shell")出來。內(nèi)容如下:
createobject("WScript.Shell").run"regedit.exe" CreateObject("WScript.Shell").popup"注冊表已經(jīng)被運(yùn)行" 上面例子會(huì)給我們造成很多麻煩和工作量。這個(gè)時(shí)候我們可以使用 set來吧 CreateObject("WScript.Shell")對象付給一個(gè)變量。
以后只要對變量訪問就相當(dāng)于對 CreateObject("WScript.Shell")訪問了。 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" shl.popup"注冊表已經(jīng)被運(yùn)行" set shl="nothing"
Nothing
可選項(xiàng)。斷開 shl與任何指定對象或類的關(guān)聯(lián)。當(dāng)沒有其它變量引用前面的引用對象時(shí),將 shl賦值為 Nothing 以釋放與前面的引用對象相關(guān)聯(lián)的系統(tǒng)或內(nèi)存資源。
WScript 對象介紹屬性/方法/對象。屬性=一個(gè)物體本身具有的一種特性。方法=一個(gè)物體能夠做某件事情,完成某件事情的時(shí)候就要用到方法。
WScript屬性的演示例子:運(yùn)行 WScript屬性的格式為: WScript.屬性名。
關(guān)于屬性--實(shí)例: WScript.Echo (WScript.FullName) 'FullName 屬性是代表主機(jī)可執(zhí)行文件的完全限定路徑的只讀字符串。 WScript.Echo (WScript.Name) '返回 WScript 對象(主機(jī)可執(zhí)行文件)的名稱 WScript.Echo (WScript.Path) '返回包含主機(jī)可執(zhí)行文件(CScript.exe 或 WScript.exe)的路徑名稱。
WScript.Echo WScript.ScriptName
'返回當(dāng)前運(yùn)行腳本的文件名。
wscript.echo WScript.ScriptFullName
'返回當(dāng)前運(yùn)行腳本的完整路徑。
WScript.Echo WScript.Version '返回 Windows 腳本宿主的版本
WScript方法的演示例子:運(yùn)行 WScript方法的格式為: WScript.方法名(操作的內(nèi)容)
關(guān)于方法--實(shí)例: WScript.Echo ("hello")
'將文本輸出到消息框中或命令控制臺窗口。
wscript.echo "hello1" WScript.Quit (1) wscript.echo "hello2" 'WScript.Quit強(qiáng)制腳本隨時(shí)停止執(zhí)行。 '(1)參數(shù)可選。作為過程的退出代碼而返回的整數(shù)值。此例子中返回的是 1。 =================================================================== wscript.echo "hello1" WScript.Sleep 1000 wscript.echo "hello2" WScript.Sleep 1000 wscript.echo "hello3"
'在指定的時(shí)間長度內(nèi)將腳本執(zhí)行掛起,然后繼續(xù)執(zhí)行。 '參數(shù),表示腳本過程處于不活動(dòng)狀態(tài)的時(shí)間間隔(毫秒)的整數(shù)值。
實(shí)例 2:
set WshShell = WScript.CreateObject("WScript.Shell")
'創(chuàng)建快捷方式
strDesktop = WshShell.SpecialFolders("Desktop") set oShellLink = WshShell.CreateShortcut(strDesktop & "\VBS的快捷方式.lnk") oShellLink.TargetPath = WScript.ScriptFullName oShellLink.WindowStyle = 1 oShellLink.Hotkey = "Ctrl+Alt+e" oShellLink.IconLocation = "notepad.exe, 0" oShellLink.Description ="VBS程序的快捷方式" oShellLink.WorkingDirectory = strDesktop oShellLink.Save '創(chuàng)建 URL set oUrlLink = WshShell.CreateShortcut(strDesktop & "\劍思庭博客.url") oUrlLink.TargetPath = "http://blog.cechina.cn/jiansiting"
oUrlLink.Save
相關(guān)參數(shù)說明: WshShell 對象的屬性: .SpecialFolders '返回 SpecialFolders 對象(特殊文件夾集)。
下面的特殊文件夾可用: Desktop --->桌面 Favorites --->收藏夾 Fonts --->C:\WINDOWS\Fonts目錄 MyDocuments -->我的文檔 Programs -->c:\program files\ SendTo -->發(fā)送到 StartMenu -->開始菜單等等
.CurrentDirectory屬性
'檢索或更改當(dāng)前活動(dòng)目錄。 'CurrentDirectory 返回一個(gè)字符串,其中包含活動(dòng)過程的當(dāng)前工作目錄的完全限定路徑。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo WshShell.CurrentDirectory
===============
WshShell 對象的方法: .CreateShortcut
'創(chuàng)建新的快捷方式,或打開現(xiàn)有的快捷方式。
'object.CreateShortcut(strPathname) '參數(shù) 'object 'WshShell 對象。 'strPathname
'表示要?jiǎng)?chuàng)建的快捷方式的路徑名的字符串值。說明 'CreateShortcut 方法返回 WshShortcut 對象或 WshURLShortcut 對象。只調(diào)用 CreateShortcut
'方法并不會(huì)導(dǎo)致快捷方式的創(chuàng)建。快捷方式對象以及對其所做的更改存儲在內(nèi)存中, '直到您用 Save方法將其保存到磁盤中為止。要?jiǎng)?chuàng)建快捷方式,必須執(zhí)行以下操作: '創(chuàng)建 WshShortcut 對象的實(shí)例。 '初始化它的屬性。 '用 Save 方法將其保存到磁盤中。
'注意一個(gè)常見的問題是,將參數(shù)放在快捷方式對象的 TargetPath 屬性中將不起作用?旖莘绞降乃袇(shù)都必須放在 'Arguments 屬性中。
WshShortcut 對象中的屬性介紹:
.TargetPath
'快捷方式的可執(zhí)行文件的路徑。
'object.TargetPath '參數(shù) 'object 'WshShortcut 或 WshUrlShortcut 對象。 '說明 '字符串。 '該屬性僅用于快捷方式的目標(biāo)路徑?旖莘绞降娜魏螀(shù)都必須放在參數(shù)的屬性中。
.WindowStyle
為快捷方式指派窗口樣式,或確定快捷方式使用的的窗口樣式類型。
object.WindowStyle = intWindowStyle
參數(shù)
object WshShortcut 對象。 intWindowStyle
設(shè)置正在運(yùn)行的程序的窗口樣式。說明 WindowStyle 屬性返回一個(gè)整數(shù)。
下表列出了 intWindowStyle 的可用設(shè)置。
intWindowStyle 說明 1 激活并顯示窗口。如果該窗口被最小化或最大化,則系統(tǒng)將其還原到初始大小和位置。 3 激活窗口并將其顯示為最大化窗口。 7 最小化窗口并激活下一個(gè)頂級窗口。
.Hotkey
為快捷方式指派組合鍵,或確定指派給快捷方式的組合鍵。
object.Hotkey = strHotkey
參數(shù)
object WshShortcut 對象。 strHotkey
代表指派給快捷方式的組合鍵的字符串。語法 strHotkey 的語法為:
[KeyModifier]KeyName KeyModifier可以是以下的任何一個(gè)組合鍵:ALT+、CTRL+、SHIFT+、EXT+。注意 EXT+ 表示“擴(kuò)展鍵”。—此處是為了防止日后將新的 SHIFT-鍵類型添加到字符集內(nèi)。
KeyName a ... z、 0 ... 9、F1 F12 ... KeyName 不區(qū)分大小寫。
說明熱鍵是一組組合鍵,當(dāng)同時(shí)按下所有相關(guān)鍵時(shí)將啟動(dòng)快捷方式。
熱鍵可用于啟動(dòng)系統(tǒng)桌面和 Windows“開始”菜單中的快捷方式。注意熱鍵的另一個(gè)名稱叫做“鍵盤快捷方式”。在 Windows 2000 中,有效的熱鍵總是以 CTRL + ALT 開頭。
.IconLocation
為快捷方式指派圖標(biāo),或確定指派給快捷方式的圖標(biāo)。
object.IconLocation = strIconLocation
參數(shù)
object WshShortcut 對象。 strIconLocation
用于查找該圖標(biāo)的字符串。該字符串應(yīng)包含與該圖標(biāo)相關(guān)聯(lián)的完全限定路徑和索引。有關(guān)詳細(xì)信息,請參見示例。說明
字符串。
.Description
返回快捷方式的說明。
object.Description
參數(shù)
object WshShortcut 對象。說明 Description 屬性中包含一個(gè)說明快捷方式的字符串值。
.WorkingDirectory
為快捷方式指派工作目錄,或者確定快捷方式使用的工作目錄。
object.WorkingDirectory = strWorkingDirectory
參數(shù)
object WshShortcut 對象。 strWorkingDirectory
字符串。快捷方式的啟動(dòng)目錄。說明
字符串。
.FullName
返回快捷方式對象目標(biāo)的完全限定路徑。
object.FullName
參數(shù)
object WshShortcut 對象。說明
FullName 屬性中包含一個(gè)表示快捷方式目標(biāo)的完全限定路徑的只讀字符串值。
WshShortcut 對象中的方法介紹:
.Save
將快捷方式對象保存到磁盤中。
object.Save
參數(shù)
object WshShortcut 或 WshUrlShortcut 對象。說明
使用 CreateShortcut 方法創(chuàng)建快捷方式對象并設(shè)置快捷方式對象的屬性后,必須用 Save 方法將快捷方式對象保存到磁盤中。Save 方法使用快捷方式對象的 FullName 屬性中的信息,確定快捷方式對象在磁盤上的保存位置。只可創(chuàng)建系統(tǒng)對象的快捷方式,包括文件、目錄和驅(qū)動(dòng)器(不包括打印機(jī)鏈接或調(diào)度任務(wù))。
WshUrlShortcut 對象 WshShell對象介紹
set WshShell = CreateObject("WScript.Shell") WScript.Echo (WshShell.CurrentDirectory)
CurrentDirectory 屬性
請參閱
WshShell 對象
語言
VBScript
顯示所有語言檢索或更改當(dāng)前活動(dòng)目錄。
object.CurrentDirectory
參數(shù)
object WshShell 對象。說明
CurrentDirectory 返回一個(gè)字符串,其中包含活動(dòng)過程的當(dāng)前工作目錄的完全限定路徑。
==========================
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 100
WshShell.AppActivate "notepad"
WScript.Sleep 100
WshShell.SendKeys "1"
WScript.Sleep 500
WshShell.SendKeys "{+}"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "="
WScript.Sleep 2500
AppActivate 方法請參閱運(yùn)行腳本 | WshShell 對象 | SendKeys 方法激活應(yīng)用程序窗口。
object.AppActivate title
參數(shù)
object WshShell 對象。 title
指定要激活哪個(gè)應(yīng)用程序。它可以是包含應(yīng)用程序的標(biāo)題(和出現(xiàn)在標(biāo)題欄中的一樣)或過程 ID 的字符串。說明 AppActivate 方法返回的布爾值表示過程調(diào)用是否成功。該方法將焦點(diǎn)轉(zhuǎn)移到命名應(yīng)用程序或窗口中,但是并不影響應(yīng)用程序或窗口是最大化還是最小化。用戶執(zhí)行更改焦點(diǎn)的操作(或關(guān)閉窗口)時(shí),焦點(diǎn)移離活動(dòng)的應(yīng)用程序窗口。
在確定要激活哪個(gè)應(yīng)用程序時(shí),指定的標(biāo)題將與正在運(yùn)行的每個(gè)應(yīng)用程序的標(biāo)題字符串相比較。如果不存在完全匹配的標(biāo)題,則將激活標(biāo)題字符串以 title 開頭的所有應(yīng)用程序。如果還是找不到任何應(yīng)用程序,則將激活標(biāo)題字符串以 title 結(jié)尾的所有應(yīng)用程序。如果存在多個(gè)名為 title 的應(yīng)用程序?qū)嵗,則將隨機(jī)激活一個(gè)實(shí)例。
將一個(gè)或多個(gè)鍵擊發(fā)送到活動(dòng)窗口(仿佛是在鍵盤上擊鍵一樣)。
object.SendKeys(string)
參數(shù)
object WshShell 對象。 string
表示要發(fā)送的鍵擊(一個(gè)或多個(gè))的字符串值。說明使用 SendKeys 方法可以將鍵擊發(fā)送到無自動(dòng)化界面的應(yīng)用程序中。多數(shù)鍵盤字符都可用一個(gè)鍵擊表示。某些鍵盤字符由多個(gè)鍵擊組合而成(例如,CTRL+SHIFT+HOME)。要發(fā)送單個(gè)鍵盤字符,請將字符本身作為 string 參數(shù)發(fā)送。例如,要發(fā)送字母 x,則請發(fā)送 string 參數(shù) "x"。
注意要發(fā)送空格,則請發(fā)送字符串 " "?墒褂 SendKeys 同時(shí)發(fā)送多個(gè)鍵擊。為此,可將每個(gè)鍵擊按順序排列在一起,以此來創(chuàng)建表示一系列鍵擊的復(fù)合字符串參數(shù)。例如,要發(fā)送鍵擊 a、b 和 c,則需要發(fā)送字符串參數(shù) "abc"。SendKeys 方法將某些字符用作字符的修飾符(而不使用其本身的含義)。這組特殊的字符可包括圓括號、中括號、大括號,以及:
用大括號 "{}" 括起這些字符可以發(fā)送它們。例如,要發(fā)送加號,請使用字符串參數(shù) "{+}"。 SendKeys中使用的中括號 "[ ]" 無任何特殊含義,但是必須把它們括在大括號中,以便容納確實(shí)要賦予其特殊含義的應(yīng)用程序(例如,對于動(dòng)態(tài)數(shù)據(jù)交換 (DDE) 就是這樣)。
要發(fā)送左中括號字符,請發(fā)送字符串參數(shù) "{[]";要發(fā)送右中括號字符,請發(fā)送字符串參數(shù) "{]}"。要發(fā)送左大括號字符,請發(fā)送字符串參數(shù) "{{}";要發(fā)送右大括號字符,請發(fā)送字符串參數(shù) "{}}"。某些鍵擊不生成字符(如 ENTER 和 TAB)。某些鍵擊表示操作(如 BACKSPACE 和 BREAK)。要發(fā)送這些類型的鍵擊,請發(fā)送下表中列出的參數(shù):
鍵參數(shù)退格鍵 {BACKSPACE}、{BS} 或 {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL 或 DELETE {DELETE} 或 {DEL}向下鍵 {DOWN} END {END} ENTER {ENTER} 或 ~ ESC {ESC} HELP {HELP} HOME {HOME} INS 或 INSERT {INSERT} 或 {INS}向左鍵 {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC}向右鍵 {RIGHT} SCROLL LOCK {SCROLLLOCK} TAB {TAB}向上鍵 {UP} F1 {F1} F2 {F2} F3 {F3} F4 {F4} F5 {F5} F6 {F6} F7 {F7} F8 {F8} F9 {F9} F10 {F10} F11 {F11} F12 {F12} F13 {F13} F14 {F14} F15 {F15}
F16 {F16}
要發(fā)送由常規(guī)鍵擊和 SHIFT、CTRL 或 ALT 組合而成的鍵盤字符,請創(chuàng)建表示該鍵擊組合的復(fù)合字符串參數(shù)?赏ㄟ^在常規(guī)鍵擊之前添加一個(gè)或多個(gè)以下特殊字符來完成上述操作:
鍵特殊字符
SHIFT + CTRL ^ ALT %
注意這樣使用時(shí),不用大括號括起這些特殊字符。要指定在按下多個(gè)其它鍵時(shí),按下 SHIFT、CTRL 和 ALT 的組合,請創(chuàng)建復(fù)合字符串參數(shù),用括號括起其中的組合鍵。例如,要發(fā)送的組合鍵指定:
如果在按 e 和 c 的同時(shí)按 SHIFT 鍵,則發(fā)送字符串參數(shù) "+(ec)"。如果在按 e 時(shí)只按 c(而不按 SHIFT),則發(fā)送字符串參數(shù) "+ec"?墒褂 SendKeys 方法發(fā)送一種在一行內(nèi)重復(fù)按鍵的鍵擊。為此,要?jiǎng)?chuàng)建復(fù)合字符串參數(shù),以指定要重復(fù)的鍵擊,并在其后指定重復(fù)次數(shù)?墒褂 {鍵擊數(shù)字} 形式的復(fù)合字符串參數(shù)來完成上述操作。例如,如果要發(fā)送 10 次 "x",則需要發(fā)送字符串參數(shù) "{x 10}"。請確保在鍵擊和數(shù)字之間有一個(gè)空格。
注意只可以發(fā)送重復(fù)按一個(gè)鍵的鍵擊。例如,可以發(fā)送 10 次 "x",但不可發(fā)送 10 次 "Ctrl+x"。注意不能向應(yīng)用程序發(fā)送 PRINT SCREEN 鍵 {PRTSC}。