获取:Microsoft VBScript 编译错误:预期')'



我是 vb 脚本的新手,想为我的 .exe 应用程序创建一个快捷方式,该快捷方式将在不可见的窗口中打开。这是我写的代码

Option Explicit
Private Sub Command1_Click()
'This will Create a ShortCut of test_application in our desktop, its name is "My-Test",    invisible windows when run, use the 2nd icon as the Shortcut icon.'
Create_ShortCut "C:MyAppbintest_application.exe", "Desktop", "My-Test", , 0, 1
End Sub
Sub Create_ShortCut(ByVal TargetPath As String, ByVal ShortCutPath As String, ByVal    ShortCutname As String, Optional ByVal WorkPath As String, Optional ByVal Window_Style As Integer, Optional ByVal IconNum As Integer)
Dim VbsObj As Object
Set VbsObj = CreateObject("WScript.Shell")
Dim MyShortcut As Object
ShortCutPath = VbsObj.SpecialFolders(ShortCutPath)
Set MyShortcut = VbsObj.CreateShortcut(ShortCutPath & "" & ShortCutname & ".lnk")
MyShortcut.TargetPath = TargetPath
MyShortcut.WorkingDirectory = WorkPath
MyShortcut.WindowStyle = Window_Style
MyShortcut.IconLocation = TargetPath & "," & IconNum
MyShortcut.Save
End Sub

我将脚本存储为 test.vbs 并按以下方式执行它

C:UsersmeDesktop>cscript test.vbs

它给了我以下错误

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
C:UsersmeDesktoptest.vbs(9, 38) Microsoft VBScript compilation error: Expected ')'

这是创建快捷方式的好方法,还是有更好,更详细的方法?

您的脚本存在一些问题。

在回答您的问题时,您收到错误的原因是 VBScript 仅支持一种数据类型 - 变体。 在函数"Create_Shortcut"中,您将参数定义为特定的数据类型,例如"作为字符串"和"作为整数"。 删除数据类型声明,您已经解决了问题 - 有点。

下一个问题是 VBScript 不支持可选参数。 因此,您还需要删除"Create_Shortcut"方法签名中的 Optional 关键字。 最终,方法签名将如下所示:

Private Sub Create_ShortCut(TargetPath, ShortCutPath, ShortCutname, WorkPath, Window_Style, IconNum)

我对这个脚本的另一个担忧是,它看起来像是在处理按钮单击(Private Sub Command1_Click);如果这是一个VB脚本而不是VB 6应用程序,则不需要按钮单击处理程序。 但是,您确实需要调用函数,因此,如果您删除按钮单击的签名以及关闭的"End Sub",您将正确调用函数。然而。。。。

"Create_Shortcut"方法中的代码也有问题。 就像上面的描述一样,只有一种数据类型 - Variant - 所以从声明变量的两行中删除"As Object"。

该函数仍然不起作用,但最后一个问题是因为在调用该方法时传递了一个空的工作目录路径;工作目录是必需的,所以一定要把它传递给你的方法。 将代码从以下位置更改:

Create_ShortCut "C:MyAppbintest_application.exe", "Desktop", "My-Test", , 0, 1

Create_ShortCut "C:MyAppbintest_application.exe", "Desktop", "My-Test", "C:MyAppbin" , 0, 1

因此,最终,您的 VBS 文件将如下所示:

Create_ShortCut "C:MyAppbintest_application.exe", "Desktop", "My-Test", "C:MyAppbin" , 0, 1
Private Sub Create_ShortCut(TargetPath, ShortCutPath, ShortCutname, WorkPath, Window_Style, IconNum)
    Dim VbsObj
    Set VbsObj = CreateObject("WScript.Shell")
    Dim MyShortcut
    ShortCutPath = VbsObj.SpecialFolders(ShortCutPath)
    Set MyShortcut = VbsObj.CreateShortcut(ShortCutPath & "" & ShortCutname & ".lnk")
    MyShortcut.TargetPath = TargetPath
    MyShortcut.WorkingDirectory = WorkPath
    MyShortcut.WindowStyle = Window_Style
    MyShortcut.IconLocation = TargetPath & "," & IconNum
    MyShortcut.Save
End Sub

最新更新