VBS Shell.Application中ShellExecute的使用方法詳解
最近在項目中偶然用到了使用VBS調(diào)用“shell.application”中的ShellExecute方法。在百度搜索一圈后發(fā)現(xiàn)很難找到關(guān)于這個方法的詳細(xì)的中文教程。最后是在微軟的官方文檔中才找到了這個指令的詳細(xì)英文教程。現(xiàn)將該方法的詳細(xì)描述用中文分享給各位碼友。
首先,VBS中調(diào)用該方法可以用Set Shell=CreateObject("Shell.Application")來創(chuàng)建對象。該方法的命令格式如下:
Shell.ShellExecute "執(zhí)行命令或文件的名稱", "執(zhí)行命令的附加參數(shù)", "執(zhí)行命令或文件所在目錄的絕對路徑", "操作", 窗口顯示類型
具體解釋如下:
1.執(zhí)行命令或文件的名稱:就是您要執(zhí)行的命令或處理文件的名稱。例如您想打開一個cmd指令窗口,那么這個名稱就是cmd.exe。
2.執(zhí)行命令的附加參數(shù):如果您執(zhí)行的命令是需要參數(shù)的,則可以將這些參數(shù)填寫在這里。
3.執(zhí)行命令或文件所在目錄的絕對路徑:填寫您要執(zhí)行的命令文件或要處理的文件的存儲路徑。如果是空則默認(rèn)為當(dāng)前路徑。
4.操作:本參數(shù)有六項設(shè)定值可供選擇。
設(shè)定值 | 中文意思 | 描述 |
edit | 編輯 | 使用對應(yīng)的編輯器打開第一個參數(shù)中輸入的文件以對其編輯。 |
find | 查找 | 在第三個參數(shù)指定的目錄下查找第一個參數(shù)指定的文件。 |
open | 打開 | 運行第一個參數(shù)中指定的文件。如果該文件不是一個可執(zhí)行文件,則用相應(yīng)的可以打開該文件的軟件打開它。 |
打印 | 打印第一個參數(shù)中指定的文件。 | |
properties | 屬性 | 列出第一個參數(shù)中指定文件的所有屬性。 |
runas | 以管理員賬戶運行 | 以管理員賬戶運行第一個參數(shù)指定的程序。用戶賬戶管理系統(tǒng)(UAC)會提示用戶確認(rèn)程序以更高的權(quán)限運行或要求用戶輸入管理員賬戶的憑證。 |
5.窗口顯示類型:這個參數(shù)用于設(shè)定在執(zhí)行第一個參數(shù)中指定的程序時,以何種方式打開程序窗口。這是一個用數(shù)字表示不同設(shè)定值的參數(shù)。具體內(nèi)容如下:
設(shè)定值 | 描述 |
0 | 在隱藏的窗口中打開程序。 |
1 | 以正常尺寸打開窗口。如果該窗口已經(jīng)最大化或最小化,則系統(tǒng)會自動將窗口回滾到正常狀態(tài)。 |
2 | 用最小化窗口打開程序。 |
3 | 用最大化窗口打開程序。 |
4 | 以最近使用的窗口尺寸和位置打開程序窗口。激活的窗口仍然激活。 |
5 | 以當(dāng)前使用的窗口尺寸和位置打開程序窗口。 |
7 | 以最小化打開程序窗口。當(dāng)前激活的窗口仍然激活。 |
10 | 以打開程序默認(rèn)的窗口尺寸打開程序窗口。 |
應(yīng)用實例:本例子是使用ShellExecute方法調(diào)用“C:\Windows\System32\cmd.exe”控制臺程序來添加用戶。用戶名稱為username,密碼為password。以管理員賬戶運行。
Set Shell=CreateObject("Shell.Application") Shell.ShellExecute "cmd.exe", "/k net user username password /add", "C:\Windows\System32\", "runas", 1
Shell.ShellExecute 方法官方資料
對指定文件執(zhí)行指定操作。
語法
JScript:
JavaScript
iRetVal = Shell.ShellExecute( ? sFile, ? [ vArguments ], ? [ vDirectory ], ? [ vOperation ], ? [ vShow ] );
VBScript:
iRetVal = Shell.ShellExecute( _ ? sFile, _ ? [ ByVal vArguments ], _ ? [ ByVal vDirectory ], _ ? [ ByVal vOperation ], _ ? [ ByVal vShow ] _ )
VB:
Shell.ShellExecute( _ ? ByVal sFile As BSTR, _ ? [ ByVal vArguments As Variant ], _ ? [ ByVal vDirectory As Variant ], _ ? [ ByVal vOperation As Variant ], _ ? [ ByVal vShow As Variant ] _ ) As Integer
參數(shù)
sFile [in]
類型: BSTR
一個 字符串 ,其中包含 ShellExecute 將對其執(zhí)行 vOperation 指定的操作的文件的名稱。
vArguments [in, 可選]
類型: Variant
包含操作的參數(shù)值的字符串。
vDirectory [in, 可選]
類型: Variant
包含 sFile 指定的文件的目錄的完全限定路徑。 如果未指定此參數(shù),則使用當(dāng)前工作目錄。
vOperation [in, 可選]
類型: Variant
要執(zhí)行的操作。 此值設(shè)置為文件支持的謂詞字符串之一。 有關(guān)謂詞的討論,請參閱“備注”部分。 如果未指定此參數(shù),則執(zhí)行默認(rèn)操作。
vShow [in, 可選]
類型: Variant
最初應(yīng)如何顯示應(yīng)用程序窗口的建議。 應(yīng)用程序可以忽略此建議。 此參數(shù)的取值可為下列值之一: 如果未指定此參數(shù),則應(yīng)用程序使用其默認(rèn)值。
值 | 含義 |
---|---|
0 | 使用隱藏窗口打開應(yīng)用程序。 |
1 | 使用普通窗口打開應(yīng)用程序。 如果窗口最小化或最大化,系統(tǒng)會將其還原為其原始大小和位置。 |
2 | 使用最小化窗口打開應(yīng)用程序。 |
3 | 使用最大化窗口打開應(yīng)用程序。 |
4 | 使用其窗口打開其最新大小和位置的應(yīng)用程序。 活動窗口保持活動狀態(tài)。 |
5 | 打開應(yīng)用程序,其窗口的當(dāng)前大小和位置。 |
7 | 使用最小化窗口打開應(yīng)用程序。 活動窗口保持活動狀態(tài)。 |
10 | 打開應(yīng)用程序,其窗口處于應(yīng)用程序指定的默認(rèn)狀態(tài)。 |
注解
此方法等效于啟動與文件快捷菜單關(guān)聯(lián)的命令之一。 每個命令由謂詞字符串表示。 支持的謂詞集因文件而異。 最常支持的謂詞是“open”,這通常是默認(rèn)謂詞。 其他謂詞可能僅支持某些類型的文件。 有關(guān) Shell 謂詞的進一步討論,請參閱 啟動應(yīng)用程序 或 擴展快捷菜單。
此方法目前在 Microsoft Visual Basic中不可用。
示例
以下示例演示如何使用 ShellExecute 打開記事本。 JScript和 VBScript 的使用情況顯示。
JScript:
function ShellExecuteJS() { var objShell = new ActiveXObject("Shell.Application"); objShell.ShellExecute("notepad.exe", "", "", "open", 1); }
VBScript:
Function ShellExecuteVB() Dim objShell Set objShell = CreateObject("Shell.Application") Call objShell.ShellExecute("notepad.exe", "", "", "open", 1) End Function
要求
要求 | 值 |
---|---|
最低受支持的客戶端 | Windows 2000 Professional,Windows XP [僅限桌面應(yīng)用] |
最低受支持的服務(wù)器 | Windows Server 2003 [僅限桌面應(yīng)用] |
標(biāo)頭 | Shldisp.h |
IDL | Shldisp.idl |
DLL | Shell32.dll (版本 5.0 或更高版本) |
想了解更多的朋友可以到微軟官方查看
https://learn.microsoft.com/zh-cn/windows/win32/shell/shell-shellexecute
到此這篇關(guān)于VBS Shell.Application中ShellExecute的使用方法詳解的文章就介紹到這了,更多相關(guān)vbs Shell.ShellExecute 方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
遠(yuǎn)程或本地獲取系統(tǒng)信息的腳本RGIS.vbs
遠(yuǎn)程或本地獲取系統(tǒng)信息的腳本RGIS.vbs...2007-02-02視頻轉(zhuǎn)換大師WinMPG Video Convert 6.63
視頻轉(zhuǎn)換大師WinMPG Video Convert 6.63...2007-04-04使用 Iisext.vbs 刪除應(yīng)用程序依存關(guān)系的實現(xiàn)方法
這篇文章主要介紹了使用 Iisext.vbs 刪除應(yīng)用程序依存關(guān)系的實現(xiàn)方法,需要的朋友可以參考下2014-07-07VBS教程:VBScript 基礎(chǔ)-VBScript 數(shù)據(jù)類型
VBS教程:VBScript 基礎(chǔ)-VBScript 數(shù)據(jù)類型...2006-11-11