热情软件屋

 

用VB创建快捷方式


编号:QA000154
建立日期: 1998年12月3日 最后修改日期:2000年5月2日
所属类别:

fsf:
    我想用vb5.0在启动和桌面上创建快捷方式, 不知如何实现。还望各位高手不吝赐教。
    

回答:

    欲支持快捷方式,有两个办法:
    一、调用Win95的IShellLink接口。在你的VB的光盘上Tools\Unsupprt\Shelllnk目录下,有一个Shelllnk例子。这个例子演示了如何在VB中使用快捷方式。
    二、调用VB安装程序中的OSfCreateShellLink函数。参考:微软的Knowledge Base的文章:“Q155303 OWTO: Create Shortcuts (Shell Links) within Windows”。这个函数在VB 5和VB 6下的调用有所不同,可以参考QA001807 "如何使安装程序在桌面上建立快捷方式"
    如果只是创建快捷方式,后一种方法比较简单。但前一种方法功能比较强,不但可以创建,也可以读取快捷方式中的属性,而且支持图标等操作。
    王力问:
    操作系统: WIN 97/NT 4.0
    编程工具: VB
    问题: Dear Mr. Li,
    Sorry, 再次麻烦您. 昨天给您发了个MAIL。关于我的问题, 我今天在家好好的看了一下VB 光盘中的例子(ShellLnk). 它确时能实现我所想要的功能, 即用其他程序中提取到的Icon 带替原快捷键的图标。我已把其中我想要的这部分功能(CreateShellLink)放到了我的程序中了, 总算是解决了这个问题. 非常感谢您的帮助.
    但因本人水平有限, 关于这部分程序(ShellLnk)。我还是有些地方看不太懂, 为这个问题我确时是花了许多的精力和时间, 因此我希望能把它搞懂。因此还希望能得到您的指点. 我的问题是:
    1. 光盘中(Shelllnk)的Shelllnk.tlb是一个什么文件? 它是用什么方法编译后得到的? 因为我想修改一下它的原程序(Shelllnk.odl), 但无法编译得到新的*.tlb文件. 有关这部分的内容应该看什么样的书?
    2. 在Shelllnk.cls的CreateShellLink()函数中, 建立了两个新的对象, 即:
    Dim cShellLink As ShellLinkA
    Dim cPersistFile As IPersistFile
    Set cShellLink = New ShellLinkA
    Set cPersistFile = cShellLink
    其中, ShellLinkA 和 IPersistFile是什么? 为什么要这样做? 它和Shelllnk.tlb 有什么关系? 因我在原程序Shelllnk.odl 中没有看到与它有关的地方。
    3. 对快捷方式文件的操作为什么这么复杂? 我也看了您用VC++5写的linktest 程序. 在VB中有没有其他较简单一点的办法来实现对这种文件的操作?
    好写了这些. 给您添麻烦了。再次谢谢您。
    回答:
    关于.tlb文件,可以参考QA000151 "TLB是什么,如何做出来"。它实际上是一个定义文件,因为VB没有象VC那样包括有关对象的定义,所以你需要使用.tlb文件进行定义。你不能随便修改.odl文件,这是系统定义的,你怎么可以随便改呢?实际上,外壳编程的确复杂,一般VC的书上会介绍,而VB的书不会介绍的。IPersistFile对象用来读写.lnk等文件,而ShellLink对象修改快捷方式的有关属性。
    
    相关问题:
    QA000083 "使用IShellLink来控制快捷方式文件"
    QA001880 "如何删除快捷方式"
    QA000360 "使用Delphi建立文件的快捷方式"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio