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