ShellFolderItem.InvokeVerbEx 方法

对 Shell 项执行谓词。

语法

iRetVal = ShellFolderItem.InvokeVerbEx(
  [ vVerb ],
  [ vArgs ]
)

参数

vVerb [in, 可选]

类型: Variant

一个 Variant 类型的 值,其中包含与要执行的命令对应的谓词字符串。 它必须是项的 Name 属性返回的值之一。 如果未指定谓词,则执行默认谓词。

vArgs [in, 可选]

类型: Variant

一个 Variant 类型,它包含一个字符串,其中包含 vVerb 指定的命令的一个或多个参数。 此字符串的格式取决于特定谓词。

备注

谓词是用于指定项支持的特定操作的字符串。 通常,调用谓词会启动相关的应用程序。 例如,在.txt文件上调用 open 谓词通常使用文本编辑器(通常是 Microsoft 记事本)打开文件。 FolderItemVerbs 对象表示与该项关联的谓词的集合。 有关谓词的进一步讨论,请参阅 启动应用程序

此方法类似于 InvokeVerb,但它允许您指定命令的参数以及命令本身。

示例

以下示例演示了在 JScript、VBScript 和 Visual Basic 中正确使用此方法。

Jscript:

<script language="JScript">
    function fnFolderItem2InvokeVerbExJ()
    {
        var objShell = new ActiveXObject("shell.application");
        var objFolder2;
        var ssfWINDOWS = 36;
        
        objFolder2 = objShell.NameSpace(ssfWINDOWS);
        if (objFolder2 != null)
        {
            var objFolderItem;
            
            objFolderItem = objFolder2.ParseName("NOTEPAD.EXE");
            if (objFolderItem != null)
            {
                objFolderItem.InvokeVerbEx("open", "c:\\autoexec.bat");
            }
        }
    }
</script>

VBScript:

<script language="VBScript">
    function fnFolderItemInvokeVerbExVB()
        dim objShell
        
        set objShell = CreateObject("shell.application")
        if (not objShell is nothing) then
            dim objFolder2
            dim ssfWINDOWS
                
            ssfWINDOWS = 36
            set objFolder2 = objShell.NameSpace(ssfWINDOWS)
            if (not objFolder2 is nothing) then
                dim objFolderItem
                        
                set objFolderItem = objFolder2.Self
                if (not objFolderItem is nothing) then
                    objFolderItem.InvokeVerbEx()
                end if
                set objFolderItem = nothing
            end if
            set objFolder2 = nothing
        end if
        set objShell = nothing
    end function
 </script>

Visual Basic:

Private Sub fnFolderItem2InvokeVerbExVB()
    Dim objShell   As Shell
    Dim objFolder2 As Folder2
    Dim ssfWINDOWS As Long
    
    ssfWINDOWS = 36
    Set objShell = New Shell
    Set objFolder2 = objShell.NameSpace(ssfWINDOWS)
        If (Not objFolder2 Is Nothing) Then
            Dim objFolderItem2 As Object
            
            Set objFolderItem2 = objFolder2.ParseName("NOTEPAD.EXE")
                If (Not objFolderItem2 Is Nothing) Then
                    objFolderItem2.InvokeVerbEx ("open")
                Else
                    'FolderItem object returned nothing.
                End If
            Set objFolderItem2 = Nothing
        Else
            'Folder object returned nothing.
        End If
    Set objFolder2 = Nothing
    Set objShell = Nothing
End Sub

要求

要求
最低受支持的客户端
Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (5.0 或更高版本)

另请参阅

ShellFolderItem

InvokeVerb