VBS Shell.Application中ShellExecute的使用方法详è§? target=


最近在项目中å�¶ç„¶ç”¨åˆ°äº†ä½¿ç”¨VBS调用“shell.application”中的ShellExecute方法。在百度æ�œç´¢ä¸€åœˆå�Žå�‘现很难找到关于这个方法的详细的中文教程。最å�Žæ˜¯åœ¨å¾®è½¯çš„官方文校£ä¸­æ‰�找到了这个指令的详细英文教程。现将该方法的详细æ��述用中文分享给å�„ä½�ç �å�‹ã€?/p>

首先,VBS中调用该方法�以用Set Shell=CreateObject("Shell.Application")�创建对象。该方法的命令格�如下:

Shell.ShellExecute "执行命令或文件的�称", "执行命令的附加��quot;, "执行命令或文件所在目录的�对路径", "�作", 窗�显示类型

具体解释如下�/p>

1.执行命令或文件的�称:就是您�执行的命令或处�文件的�称。例如您想打开一个cmd指令窗�,那么这个�称就是cmd.exe�/p>

2.执行命令的附加�数:如果您执行的命令是需��数的,则�以将这些�数填写在这里�/p>

3.执行命令或文件所在目录的�对路径:填写您�执行的命令文件或�处�的文件的存储路径。如果是空则默认为当�路径�/p>

4.�作:本�数有六项设定值�供选择�/p>
设定�/td>中文��/td>�述
edit编辑使用对应的编辑器打开第一个�数中输入的文件以对其编辑�/td>
find查找在第三个�数指定的目录下查找第一个�数指定的文件�/td>
open打开�行第一个�数中指定的文件。如果该文件�是一个�执行文件,则用相应的�以打开该文件的软件打开它�/td>
print打�打�第一个�数中指定的文件�/td>
properties属�/td>列出第一个�数中指定文件的所有属性�/td>
runas以管�员账户�行以管�员账户�行第一个�数指定的程�。用户账户管�系统(UAC)会�示用户确认程�以更高的���行或�求用户输入管�员账户的凭��/td>

5.窗�显示类型:这个�数用于设定在执行第一个�数中指定的程�时,以何�方�打开程�窗�。这是一个用数字表示��设定值的�数。具体内容如下:

设定�/td>�述
0在��的窗�中打开程��/td>
1以正常尺寸打开窗�。如果该窗�已�最大化或最�化,则系统会自动将窗�回滚到正常状��/td>
2用最�化窗�打开程��/td>
3用最大化窗�打开程��/td>
4以最近使用的窗�尺寸和�置打开程�窗�。激活的窗��然激活�/td>
5以当�使用的窗�尺寸和�置打开程�窗��/td>
7以最�化打开程�窗�。当�激活的窗��然激活�/td>
10以打开程�默认的窗�尺寸打开程�窗��/td>

应用实例:本例å­�是使用ShellExecute方法调用“C:WindowsSystem32cmd.exe”控制å�°ç¨‹åº�æ�¥æ·»åŠ ç”¨æˆ·ã€‚ç”¨æˆ·å��称为username,密ç �为password。以管ç�†å‘˜è´¦æˆ·è¿�行ã€?/p>

Set Shell=CreateObject("Shell.Application")
Shell.ShellExecute "cmd.exe", "/k net user username password /add", "C:WindowsSystem32", "runas", 1

Shell.ShellExecute 方法官方资料

对指定文件执行指定�作�/p>

语法
JScriptï¼?/p>

JavaScript

iRetVal = Shell.ShellExecute(
  sFile,
  [ vArguments ],
  [ vDirectory ],
  [ vOperation ],
  [ vShow ]
);

VBScriptï¼?/p>

iRetVal = Shell.ShellExecute( _
  sFile, _
  [ ByVal vArguments ], _
  [ ByVal vDirectory ], _
  [ ByVal vOperation ], _
  [ ByVal vShow ] _
)

VBï¼?/p>

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]

类型�nbsp;BSTR

一ä¸?nbsp;字符ä¸?nbsp;,其中包å�?nbsp;ShellExecute å°†å¯¹å…¶æ‰§è¡?nbsp;vOperation æŒ‡å®šçš„æ“�作的文件的å��ç§°ã€?/p>

vArguments [inï¼?å�¯é€‰]

类型�nbsp;Variant

包��作的�数值的字符串�/p>

vDirectory [inï¼?å�¯é€‰]

类型�nbsp;Variant

包å�« sFile æŒ‡å®šçš„æ–‡ä»¶çš„目录的完全é™�定路径ã€?如果未指定此å�‚数,则使用当å‰�工作目录ã€?/p>

vOperation [inï¼?å�¯é€‰]

类型�nbsp;Variant

è¦�执行的æ“�作ã€?此值设置为文件支æŒ�的谓è¯�字符串之一ã€?有关谓è¯�的讨论,请å�‚é˜?ldquo;备注”部分ã€?如果未指定此å�‚数,则执行默认æ“�作ã€?/p>

vShow [inï¼?å�¯é€‰]

类型�nbsp;Variant

最�应如何显示应用程�窗�的建议�应用程��以忽略此建议�此�数的�值�为下列值之一�如果未指定此�数,则应用程�使用其默认值�/p>
�/th>�义

0

使用��窗�打开应用程��/td>

1

使用普通窗�打开应用程��如果窗�最�化或最大化,系统会将其还原为其原始大�和�置�/td>

2

使用最�化窗�打开应用程��/td>

3

使用最大化窗�打开应用程��/td>

4

使用其窗�打开其最新大�和�置的应用程��活动窗���活动状��/td>

5

打开应用程�,其窗�的当�大�和�置�/td>

7

使用最�化窗�打开应用程��活动窗���活动状��/td>

10

打开应用程�,其窗�处于应用程�指定的默认状��/td>

注解

此方法等效于å�¯åŠ¨ä¸Žæ–‡ä»¶å¿«æ�·è�œå�•å…³è�”的命令之一ã€?æ¯�个命令由谓è¯�字符串表示ã€?支æŒ�的谓è¯�集因文件而异ã€?最常支æŒ�的谓è¯�æ˜?ldquo;open”,这通常是默认谓è¯�ã€?å…¶ä»–è°“è¯�å�¯èƒ½ä»…支æŒ�æŸ�些类型的文件ã€?有关 Shell è°“è¯�的进一步讨论,请å�‚é˜?nbsp;å�¯åŠ¨åº”ç”¨ç¨‹åº� æˆ?nbsp;扩展快æ�·è�œå�•ã€?/p>

此方法目�在 Microsoft Visual Basic中��用�/p>

示例

以下示例演示如何使用 ShellExecute æ‰“开记事本ã€?JScriptå’?VBScript 的使用情况显示ã€?/p>

JScriptï¼?/p>

function ShellExecuteJS()
{
    var objShell = new ActiveXObject("Shell.Application");
    objShell.ShellExecute("notepad.exe", "", "", "open", 1);
}

VBScriptï¼?/p>

Function ShellExecuteVB()
    Dim objShell
    Set objShell = CreateObject("Shell.Application")
    Call objShell.ShellExecute("notepad.exe", "", "", "open", 1)
End Function

�求

�求�/th>
最低�支�的客户端Windows 2000 Professional,Windows XP [仅�桌�应用]
最低�支�的�务器Windows Server 2003 [仅�桌�应用]
标头

Shldisp.h

IDL

Shldisp.idl

DLL

Shell32.dll (版本 5.0 或更高版�

想了解更多的朋��以到微软官方查�/p>

https://learn.microsoft.com/zh-cn/windows/win32/shell/shell-shellexecute

到此这篇关于VBS Shell.Application中ShellExecute的使用方法详解的文章就介�到这了,更多相关vbs Shell.ShellExecute 方法内容请�索脚本之家以�的文章或继续�览下�的相关文章希望大家以�多多支�脚本之家�/p>