【问题标题】:Creating a lnk in VBS在 VBS 中创建 lnk
【发布时间】:2014-09-24 00:35:51
【问题描述】:

我在第 6 行收到一个错误,即带有 lnk.TargetPath 的那个参数无效。我希望在桌面的开始菜单下创建一个指向该程序的链接。有人知道它为什么这样做吗?

Set objShell = WScript.CreateObject("WScript.Shell")
Set lnk = objShell.CreateShortcut("C:\Users\%USERDATA%\Desktop\Shutdown.LNK")
Dim strUserProfile
strUserProfile = objShell.ExpandEnvironmentStrings("%USERPROFILE%")

lnk.TargetPath = "C:\Users\" & strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\shutdown.bat"
lnk.Arguments = ""
lnk.Description = "Shutdown"
'lnk.HotKey = "ALT+CTRL+F"
lnk.IconLocation = "C:\Users\" & strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\shutdown.bat, 2"
lnk.WindowStyle = "1"
lnk.WorkingDirectory = "C:\Users\" & strUserProfile &"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"
lnk.Save
Set lnk = Nothing

【问题讨论】:

    标签: vbscript lnk


    【解决方案1】:

    我认为这是因为 strUserProfiles 包含用户目录的完整路径。试试这个稍加修改的代码:

    Set objShell = WScript.CreateObject("WScript.Shell")
    Dim strUserProfile
    strUserProfile = objShell.ExpandEnvironmentStrings("%USERPROFILE%")
    
    Set lnk = objShell.CreateShortcut(strUserProfile & "\Desktop\Shutdown.LNK")
    
    lnk.TargetPath = strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\shutdown.bat"
    lnk.Arguments = ""
    lnk.Description = "Shutdown"
    'lnk.HotKey = "ALT+CTRL+F"
    lnk.IconLocation = strUserProfile & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\shutdown.bat, 2"
    lnk.WindowStyle = "1"
    lnk.WorkingDirectory = strUserProfile &"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"
    lnk.Save
    Set lnk = Nothing
    

    【讨论】:

    • 不要硬编码系统路径。使用objShell.SpecialFolders("Desktop").SpecialFolders("Programs")
    猜你喜欢
    • 2011-08-28
    • 1970-01-01
    • 2013-08-04
    • 2011-03-26
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多