1976年贪婪的嘴唇,韩国少妇激三级做爰2023电影,久久久久久精品国产三级涨奶,妖精漫画在线观看免费漫画下拉式

VBS中Run和Exec的區別
來源:易賢網 閱讀:1557 次 日期:2016-06-30 10:02:05
溫馨提示:易賢網小編為您整理了“VBS中Run和Exec的區別”,方便廣大網友查閱!

這篇文章主要介紹了VBS中Run和Exec的區別,需要的朋友可以參考下

Set ws = CreateObject("WScript.Shell")

'這里創建一個對象引用,以便在以下示例代碼中使用。

'Demon注:這個變量名怎么這么猥瑣(WS)

語法:(常識(Demon注:常識這個詞我喜歡):作為過程使用時,不要加括號,否則出現編譯器錯誤(參數唯一或沒有時加括號不會出錯,但建議不要加))

代碼如下:

ws.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

[Set objExec =] ws.Exec(strCommand)

WScript.Shell對象的這兩個方法:

都可以用來運行程序,且可以帶參數。

都可以在程序路徑中使用環境變量。

都不能為程序指定工作目錄、不能設置優先級(start命令可以)。

要指定工作目錄,只能通過改變腳本宿主(wscript.exe/cscript.exe)的當前工作目錄:ws.CurrentDirectory = "工作目錄"。(常識:工作目錄有何意義:1、有些程序需要相應目錄下的dll等相關文件支持 2、相對路徑問題)

Run和Exec的區別:

1、Run可以直接運行文件(包括協議文件),會啟動相關聯的程序打開該文件(沒有關聯則出錯)。start有此功能(更高級,沒有關聯時會打開“打開方式”對話框)。Exec只能運行程序。

代碼如下:

ws.Run "c:\boot.ini"

ws.Exec "notepad c:\boot.ini"

2、Run不僅可以直接運行位于path環境變量目錄中的程序,還能運行在注冊表App Paths中設置的程序“別名”。start有此功能。Exec不行,只能直接運行位于path環境變量目錄中的程序。

代碼如下:

ws.Run "iexplore"

'iexplore 在 App Paths 中登記了別名。

ws.Exec "calc"

3、Run可以等待程序運行結束再執行下面的命令。start有此功能。Exec不行。

代碼如下:

ws.Run "notepad", ,true

4、Exec運行的程序路徑中即使含有空格,也可以不加引號(參數如需引號,它的引號不能省略)。Run、start沒有這個本領。(常識:vbs中一個引號字符"本身要用兩個引號表示,即寫成""。也可以用Chr函數得到引號:chr(34))

代碼如下:

ws.Exec "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

ws.Exec """C:\Program Files\Internet Explorer\IEXPLORE.EXE"""

ws.Run  """C:\Program Files\Internet Explorer\IEXPLORE.EXE"""

5、最大的區別是:Run著重于啟動控制(設置窗口形式)。(start聽名字知道是為了啟動,也可以簡單設置窗口最大化、最小化。)Exec著重于后續控制,并著重于控制命令行程序。

run可以設置程序運行時的運行模式(前臺后臺:是否隱藏窗口)、窗口大小、激活狀態(是否獲取“焦點”),具體參數請參考手冊。

Exec在啟動程序后還能對其進行控制:獲取運行狀態、獲取PID、強行中止進程。如果運行的是命令行程序,還能提供對 StdIn/StdOut/StdErr 流的訪問:寫入執行命令、獲取命令輸出等。運行命令行程序后只能通過StdIn寫入命令,控制臺窗口不再接受用戶輸入。

代碼如下:

ws.Run "notepad", 0

'隱藏窗口

ws.Run "notepad", 4

'運行后不激活,不打擾原來的活動窗口

注意,手冊上明確指出,Run不能約束所有程序都按它指定的窗口形式運行,有些程序不聽它的話,比如iexplore、calc等。運行ieplore時,它會奪取焦點成為活動窗口。Run無法以最小化運行calc。

代碼如下:

Set oExec = ws.Exec("mspaint")

WScript.Echo oExec.ProcessId

oExec.Terminate

WScript.Echo oExec.Status '0為運行,1為結束

Set oExec = ws.Exec("ipconfig")

WScript.Echo oExec.StdOut.ReadAll

Exec的應用:

1、Runas自動輸入密碼:可能是設計時為安全考慮,runas不接收管道傳遞或從文件重定向得到,輸入密碼必須手動輸入,這個問題困擾了不少人,卻又難以解決,用Sendkeys也不一定穩妥(Demon注:我之前也說過很多次,用Sendkeys是不靠譜的,因為無法保證目標窗口一直獲得焦點,但是經常見到很多人用,真是不明真相的群眾,悲哀)。如果用Exec方法,就能輕松做到自動輸入。

代碼如下:

Set ws = CreateObject("WScript.Shell")

Set oExec = ws.Exec("cmd.exe")

oexec.StdIn.WriteLine "runas /user:username setup.bat"

oexec.StdIn.WriteLine "password"

2、Exec與Run的結合使用:Exec方法無法隱藏窗口,要得到命令行程序的輸出,就會有一個黑呼呼的窗口一閃而過,不僅難看,還會讓其他使用者誤以為是木馬什么的,很不完美。如何解決這個問題呢?就讓Exec與Run合作吧!

代碼如下:

Set ws = CreateObject("WScript.Shell")

host = WScript.FullName

'Demon注:這里不用這么復雜吧,LCase(Right(host, 11))不就行了

If LCase( right(host, len(host)-InStrRev(host,"\")) ) = "wscript.exe" Then

    ws.run "cscript """ & WScript.ScriptFullName & chr(34), 0

    WScript.Quit

End If

Set oexec = ws.Exec( "ipconfig")

Msgbox oExec.StdOut.ReadAll, , "ipconfig"

'此時不要用WScript.Echo,因為當前是在控制臺運行

'WScript.Echo的結果會在控制臺輸出,不會彈出對話框。

vbsRun方法

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

【參數】

object 

WshShell 對象。 

strCommand 

表示要運行的命令行的字符串值。包括要傳遞到可執行文件的所有參數。 

intWindowStyle 

可選。表示程序窗口外觀的整數值。

請注意,并非所有程序都使用此信息。 

bWaitOnReturn 

可選。布爾值,表示在繼續執行腳本中的下一條語句之前,腳本是否等待執行完程序。

如果設為 true,則在執行完程序后才執行腳本,Run 方法返回由程序返回的任何錯誤代碼。

如果設為 false(默認值),則 Run 方法將自動在啟動程序后立即返回 0(不是錯誤代碼)。

【說明】

Run 方法返回一個整數。Run 方法啟動在新 Windows 進程中運行的程序。

可以讓腳本等到程序執行完后再繼續執行。這允許您同步運行腳本和程序。

strCommand 參數內的環境變量自動擴展。

如果某個文件類型已正確注冊到某個程序中,則對該類型的文件調用 Run 方法時將執行該程序。例如,如果您的計算機系統中裝有 Word,則對 *.doc 文件調用 Run 方法時將啟動 Word 并加載該文檔。

【intWindowStyle 說明 】

0 隱藏一個窗口并激活另一個窗口。 

1 激活并顯示窗口。如果窗口處于最小化或最大化狀態,則系統將其還原到原始大小和位置。第一次顯示該窗口時,應用程序應指定此標志。 

2 激活窗口并將其顯示為最小化窗口。 

3 激活窗口并將其顯示為最大化窗口。 

4 按最近的窗口大小和位置顯示窗口。活動窗口保持活動狀態。 

5 激活窗口并按當前的大小和位置顯示它。 

6 最小化指定的窗口,并按照 Z 順序激活下一個頂部窗口。 

7 將窗口顯示為最小化窗口。活動窗口保持活動狀態。 

8 將窗口顯示為當前狀態。活動窗口保持活動狀態。 

9 激活并顯示窗口。如果窗口處于最小化或最大化狀態,則系統將其還原到原始大小和位置。還原最小化窗口時,應用程序應指定此標志。 

10 根據啟動應用程序的程序狀態來設置顯示狀態。

【示例 1】

下面的 VBScript 代碼用記事本打開當前運行腳本的副本。

代碼如下:

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%windir%\notepad " & WScript.ScriptFullName

下面的 VBScript 代碼與上述代碼完成的操作相同,不同之處在于,它指定窗口類型,等待用戶關閉記事本,關閉記事本時保存從記事本返回的錯誤代碼。

代碼如下:

Set WshShell = WScript.CreateObject("WScript.Shell")

Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)

【示例 2】

下面的 VBScript 代碼打開一個命令窗口,將路徑改為 C:\,并執行 DIR 命令。

代碼如下:

Dim oShell

Set oShell = WScript.CreateObject ("WSCript.shell")

oShell.run "cmd /K CD C:\ & Dir"

Set oShell = Nothing

Run 方法:

Run方法有三個參數,

第一個參數是你要執行的程序的路徑,

第二個參數是窗口的形式,0后臺運行;1正常運行;2最小化;3最大化;缺省的話表示正常運行

第三個參數是表示這個腳本是等待還是繼續執行,如果設為了True,腳本就會等待調用的程序退出后再向后執行。

例1:

代碼如下:

Set ws = CreateObject("WScript.Shell")

ws.Run "notepad",,True

ws.Run "iexplore"

例2:隱藏BAT執行窗口

代碼如下:

Set ws = CreateObject("WScript.Shell")

ws.Run "x.bat",0

例3:

代碼如下:

Set ws = CreateObject("WScript.Shell")

ws.Run "cmd /c netstat -an>>x.txt",0

例4:

代碼如下:

Set ws = CreateObject("WScript.Shell")

ws.Run "taskkill /f /im iexplore.exe",0

Exec 方法

例1:運行文件

代碼如下:

Set ws = CreateObject("WScript.Shell")

ws.Exec "notepad c:/x.txt" ‘對于Exec應指明程序,此notepad是必須的

例2:運行程序>獲取進程PID值>強行結束進程(沒有Run+taskkill強:如在記事本未保存的情況下結束進程,Exec會出錯,而Run不會)>判斷進程是否在運行(這個功能不錯)

代碼如下:

Set ws = CreateObject("WScript.Shell")

Set e = ws.Exec("notepad")

MsgBox e.ProcessId

e.Terminate

WSH.Sleep 1000

MsgBox e.Status ‘0為運行,1為結束

例3:直接獲取dos命令輸出,dos窗口會閃一下,Exec沒有窗口控制功能

代碼如下:

Set ws = CreateObject("WScript.Shell")

Set e = ws.Exec("ipconfig")

MsgBox e.Stdout.ReadAll

例4:

代碼如下:

Set ws = CreateObject("WScript.Shell")

Set e = ws.Exec("cmd /c echo Hi")

MsgBox e.Stdout.ReadAll

更多信息請查看腳本欄目
易賢網手機網站地址:VBS中Run和Exec的區別
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 兴仁县| 尖扎县| 潜山县| 阿克苏市| 将乐县| 汉川市| 枣强县| 宝山区| 漳浦县| 青州市| 平度市| 定南县| 福鼎市| 明水县| 新沂市| 海门市| 扶风县| 锦屏县| 雷州市| 泰安市| 镶黄旗| 肥乡县| 乌鲁木齐县| 吴江市| 陇西县| 原平市| 镇坪县| 饶平县| 宁海县| 鄱阳县| 留坝县| 罗田县| 于田县| 封开县| 克什克腾旗| 雅安市| 正镶白旗| 平罗县| 莱芜市| 芒康县| 栾川县|