欢迎初学者访问:
http://blog.csdn.net/zcsor
老鸟们不要×!@0 哦
以下是问题:
众所周知,可以使用API函数来创建一个快捷方式,并同时设置其图标、说明等信息,但是小可用查来的代码时发现虽然快捷方式的属性里面的图标是设置的图标,但实际显示的还是原来的图标。例如,编译一个工程1.EXE,图标是VB默认的种FORM的图标,然后创建一个快捷方式并将图标设置为记事本的,发现创建的快捷方式的图标还是VB的那种,而查看快捷方式的属性发现图标是记事本的。问题出在哪了?代码就不贴了,求一可用代码。

解决方案 »

  1.   

    刷新也不成功不知道为什么
    我是XP,SP几呢,,好象没打补丁,哈哈,我懒
      

  2.   

    好的,
    非常的不好贴啊~!~!!!!!!!!!!!!!!!
    好多控件其实我找到的这个代码,和VB安装盘里的SHELLLINK的示例代码是基本相同的我用随安装盘的ShellLink示例来创建结果也是一样的。其实关键是想实现这个更改快捷方式图标。
      

  3.   

    贴上来吧
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  4.   

    楼主没必要用API啊用VBS就一下解决了
             set WshShell = WScript.CreateObject("WScript.Shell")
             strDesktop = WshShell.SpecialFolders("Desktop")
             set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
             oShellLink.TargetPath = WScript.ScriptFullName
             oShellLink.WindowStyle = 1
             oShellLink.Hotkey = "CTRL+SHIFT+F"
             oShellLink.IconLocation = "notepad.exe, 0"
             oShellLink.Description = "Shortcut Script"
             oShellLink.WorkingDirectory = strDesktop
             oShellLink.Save
      

  5.   

    set WshShell = WScript.CreateObject("WScript.Shell")
             strDesktop = WshShell.SpecialFolders("Desktop")
             set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")
             oShellLink.TargetPath = WScript.ScriptFullName
             oShellLink.WindowStyle = 1
             oShellLink.Hotkey = "CTRL+SHIFT+F"
             oShellLink.IconLocation = "notepad.exe, 0"
             oShellLink.Description = "Shortcut Script"
             oShellLink.WorkingDirectory = strDesktop
             oShellLink.Save
    这玩意不错
    代码估计是他舍不得弄上来
    大家就不要等了
      

  6.   

    ?不舍得  ?
    呵呵,VB安装盘上就有,何必呢,何必呢???????
    如果我都不舍得,何必在博客上写一些东西呢,你去网上看看,就那2个读写进程内存的函数,有几个正解的,都TMD垃圾货干的垃圾事,别以小人之心度所有人,那么多星星了,何必呢。
      

  7.   

    嘿嘿
    几段小代码而已
    api就能完成
    需要用控件么?
    算了
    不多说了
    要不人说我找碴了
      

  8.   

    恩恩,测试通过。稍修改一下是可以在VB里面直接写代码的,不用写成脚本再SHELLOption Explicit
    Dim WshShell As Object, WScript As Object, strDesktop As String, oShellLink As Object
    Private Sub Form_Load()         Set WshShell = CreateObject("WScript.Shell")
             strDesktop = WshShell.SpecialFolders("Desktop")    '桌面路径
             Set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut Script.lnk")  '创建快捷方式,参数为路径和名称
             oShellLink.WindowStyle = 1 '风格
             oShellLink.Hotkey = "CTRL+SHIFT+F" '热键
             oShellLink.IconLocation = "notepad.exe, 0" '图标
             oShellLink.Description = "Shortcut Script" '快捷方式备注内容
             oShellLink.WorkingDirectory = strDesktop   '源文件所在目录
             oShellLink.Save    '保存创建的快捷方式
             
    End Sub大家帮我再看看SHELLLINK那个例子,在你们机器上能正常创建不,那个示例在VB安装盘中,在你的安装盘里搜索一下就找到了。
      

  9.   

    这里怎么这么臭呢,学过几天VB了??SHELLLINK的例子在VB安装盘这个位置:
    X:\安装程序所在目录\COMMON\TOOLS\VB\UNSUPPRT\SHELLLNK\TESTSLNK
    那位2个星星的大哥,你不吝啬我也不吝啬,你可以把代码看完贴在这里,我的帖子随便你发的,真的。
      

  10.   

    貌似正常,那个shelllink我用了n年了