我有一个代码,哪个任务会改变.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
任何人都可以给我一些建议,我哪里出错了?
感谢。
答案 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://
放在地址前面。