用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建立文件的快捷方式"
此问题由李海回答。
| |
|
|
| |
|
|