VB:更改快捷方式属性

时间:2013-08-26 15:30:18

标签: file vb6 shortcut

我有一个代码,哪个任务会改变.url或.lnk(快捷方式)属性,但它似乎没有做任何事情。

Imports System.IO
Imports Shell32

Module Module1
    Sub Main()
        'References Microsoft Shell Controls and Automation.
        'http://msdn.microsoft.com/en-us/library/bb776890%28v=VS.85%29.aspx
    End Sub
    Public Sub Change_Shortcut()

    Dim shell As Shell32.Shell
    Dim folder As Shell32.Folder
    Dim folderItem As Shell32.FolderItem
    Dim shortcut As Shell32.ShellLinkObject

    shell = New Shell32.Shell

    folder = shell.NameSpace("C:\Users\GrzegoP\Desktop\xxx") 'Shortcut path
    If Not folder Is Nothing Then
        folderItem = folder.ParseName("o2.url") 'Shortcut name
        If Not folderItem Is Nothing Then
            shortcut = folderItem.GetLink
            If Not shortcut Is Nothing Then
                shortcut.Path = "www.o2.ie" 'new shortcut address
                shortcut.Save()
                MsgBox("Shortcut changed")
            Else
                MsgBox("Shortcut link within file not found")
            End If
        Else
            MsgBox("Shortcut file not found")
        End If
    Else
        MsgBox("Desktop folder not found")
    End If

End Sub

End Module

任何人都可以给我一些建议,我哪里出错了?

感谢。

3 个答案:

答案 0 :(得分:1)

这里要注意的是,您无法以这种方式创建URL快捷方式:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776891%28v=vs.85%29.aspx

您只需在桌面上创建一个xxx.url文件,在其中写下以下文本行:

[InternetShortcut]
URL=http://www.o2.ie

Windows会将其转换为网站快捷方式。

答案 1 :(得分:0)

根据我的理解,听起来似乎没有任何事情被执行。尝试在sub的开头放置一个断点,看看它是否被调用。如果没有,请确保您能够正确连接Change_Shortcut(),以便适当调用它。

设置断点后,您应该能够遍历代码并查看最终结果,以确保它们按预期工作。

答案 2 :(得分:0)

解决我的问题的简单方法......

行:shortcut.Path = "www.o2.ie"

我忘了把http://放在地址前面。