在Windows 7框(64位)上从vb.net创建快捷方式

时间:2010-06-14 12:47:17

标签: c# .net vb.net windows-7 shortcut

我正在尝试从Windows 7机箱(64位)上的vb.net代码创建桌面快捷方式。以下代码适用于XP,但在Win7上运行时,我只收到一条消息,说明应用程序已停止工作:

Imports IWshRuntimeLibrary

Dim WshShell As WshShellClass = New WshShellClass

            Dim MyShortcut As IWshRuntimeLibrary.IWshShortcut

            ' The shortcut will be created on the desktop
            'Win 7 
            MyShortcut = CType(WshShell.CreateShortcut("C:\Users\Public\Desktop\iexplore.lnk"), IWshRuntimeLibrary.IWshShortcut)

            'MyShortcut = CType(WshShell.CreateShortcut("C:\Documents and Settings\All Users\Desktop\iexplore.lnk"), IWshRuntimeLibrary.IWshShortcut)

            MyShortcut.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe" 'Specify target app full path
            MyShortcut.Description = "IE"

            MyShortcut.Save()

从Win7盒子上的代码创建快捷方式的想法或更好的方法吗?

2 个答案:

答案 0 :(得分:2)

Windows 7 64位在这里。将其编译为32位并且有效:

Imports IWshRuntimeLibrary

Module Module1

    Sub Main()
        Dim WshShell As WshShell = New WshShell

        Dim MyShortcut As IWshRuntimeLibrary.IWshShortcut

        MyShortcut = CType(WshShell.CreateShortcut("C:\Users\Public\Desktop\Dah Browser.lnk"), IWshRuntimeLibrary.IWshShortcut)
        MyShortcut.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe" 'Specify target app full path
        MyShortcut.Description = "IE"

        MyShortcut.Save()
    End Sub

End Module

注意:我在关闭UAC的情况下以管理员身份运行。

另请注意,我将WshShellClass更改为WshShell

答案 1 :(得分:0)

您的应用运行的权限是什么?我相信它需要管理员凭据才能完成你想要的工作。