Wscript.shell 详解
??
Wscript.shell
Wscript.shell是Wshshell的ProID
Wshshell
是一個對象,存放在windows系統中的wshom.ocx文件
中,可供在windows上運行的程序調用。他可對windows的外殼程序進行訪問。
對象(object)是一些相關變量和方法的軟件集,或者說庫。當你需要這個對象里面的變量,方法,功能的時候,你就可以使用相關語言(代碼)來調用。
ProID
是程序員給某個CLSID指定的一個易記名字。組成如<Program>.<Componet>.<version>
CLSID
是windows系統對于不同的應用程序,文件類型,OLE對象,特殊文件夾以及各種系統組件分配的一個唯一表示它的代碼。為Class ID的縮寫。
所以:代碼
Set Obj = createobject(“WScript.Shell”)
得到對象Obj,即Wshshell,是一個對象。
我們首先了解下對象Wscript : Windows Script Host object model (注意,前三個縮寫為Wsh )
簡單的說,Wscript就是Windows腳本宿主對象模型(WSHOM) , 而
Wscript就是windows內對象存放的一個根對象(官方語言:Wscript是一個基于windows系統腳本宿主對象的根對象), 利用它可以創造兩種COM對象:WshShell 與 WshNetwork .
注釋1:(八卦一下,不知道現在的諸如WshEnvironment, WshCollection, WshExec等對象是不是也存放在該根對象下,依照我的理解是的,因為他們都有前綴Wsh,但他們應該不是COM組件,故不再上面列出,應該是這樣吧。另需注意Wsh是Wscript對象內置的變量,故在你載入WshShell后,在沒有聲明的情況下不能使用Wsh作為變量,否則會出現錯誤)
注釋2:(COM對象即the Component Object Model,組件對象模型。COM組件是遵行COM規范編寫,以Win32動態鏈接庫(DLL)或可執行文件(EXE)形式發布的可執行二進制代碼,能夠滿足組建對框架的所有需求。簡單理解COM對象就是可執行二進制代碼存放的根對象)(貌似我搞不懂,如果真是這樣,他們為什么非要用model模型這個單詞呢,為什么不用Root根或family集合這類單詞呢)
其中WshNetwork對象主要用于訪問局域網環境下的
資源共享,我們這里就不闡述了。
對于WshShell對象,其中的Shell是外殼的意思,應該是此對象能夠調用windows的外殼程序,故取名shell,個人覺得那么Wscript.shell這個ProID堪稱完美。
因代碼中都用另一個對象等價于WshShell,以下用Ws替代WshShell .
功能
Ws能夠實現模擬鍵盤,向激活窗口發送鍵值實現選擇,談出定時對話框,讀寫注冊表,啟動程序,創建快捷方式等等功能。
方法
AppActivate (按鍵精靈不支持,屬vbs) 判斷窗口是否被激活
CreateShortcut 創建并返回WshShortcut對象
ExpandEnvironmentStrings 擴展Progress環境變量并返回結果字符串
Popup 顯示包含指定消息的消息窗口
RegDelete 刪除注冊表某目錄
RegRead 讀取注冊表某目錄
RegWrite 編輯注冊表某目錄
Run 啟動程序
SendKeys 發送字符串或一些特殊的鍵盤字符
Ws.AppAcitve窗口激活經常在自動化測試中需要用到,特別是需要測試對象出現后再做的激活,往往需要一定的等待時間。如果此時使用循環結構進行判斷窗口是否激活,可以節省時間。Ws提供了一個非常有用的功能(即方法,不知一個人覺得功能比方法更貼切吧)
語法: Ws.AppActive(title)
參數title:為需要激活窗口的titile屬性值,也就是標題或者ProcessID
返回值:布爾值。如果激活了返回True,未激活返回False
Ws.Popup 在彈窗內顯示文本信息,即實現定時提示框的作用。
語法:i=Ws.Popup(“text” ,”int”,”title”,”nType”)
參數:text是彈窗文本內容,int是彈窗最長顯示時間秒,title彈窗標題,nType是是彈窗顯示按鈕和圖標類型的數值
返回值:用戶單擊以解除彈窗的按鈕值
例程:YN=Ws.Popup(“你去過香格里拉嗎“,“20”,“經歷”,”2”)
Ws.Run啟動windows自帶的軟件。如記事本
例程:Ws.Run“Notepad”
功能:運行記事本
Ws.SendKeys 主要用在對象無法識別時,又要在此對象內輸入字符串,即可用此法。又或需要用快捷鍵時,也可用此法。
語法:Ws.sendkeysstring[,wait]
參數: string為指定要發送的字符串或特殊字符。wait可選,指定等待的方式。
例程:Ws.sendkeys “我去過才怪”
屬性
Ws.CurrentDirectory 返回或改變該當前目錄
Ws.Environment 返回WshEnvironment對象
Ws.SpecialFolders
使用WshSpecialFolders對象對windows shell文件夾進行訪問。
總結
以上是生活随笔為你收集整理的Wscript.shell 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10 10049版登录时蓝屏怎么办
- 下一篇: python打卡摄像头黑屏_500行Py