Windows环境下的快捷方式由于能够极大的简化了用户访问磁盘文件的操作,因此,许多软件在安装的最后阶段都会在开始菜单或者桌面上建立应用程序的快捷方式,通常,这些工作都是利用专门的安装软件来完成的。可在一些软件中,还为用户在程序中动态的添加或者删除桌面上的快捷方式的功能。本文所要讲述的就是如何在VB中实现动态添加/删除Windows的快捷方式。 ---- 要在VB中创建Windows的快捷方式,需要用到VB的一个动态链接库Vb5stkit.dll。在该动态链接库中提供了三个函数OSfCreateShellGroup、OSfCreateShellLink、OSfRemoveShellLink,分别用于创建快捷方式程序组、快捷方式、删除快捷方式。这三个函数的声明形式分别如下:
Private Declare Function OSfCreateShellGroup Lib "Vb5stkit.dll" Alias "fCreateShellFolder" (ByVal lpstrDirName As String) As Long
Private Declare Function OSfCreateShellLink Lib "Vb5stkit.dll" Alias "fCreateShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String,ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String) As Long
Private Declare Function OSfRemoveShellLink Lib "Vb5stkit.dll" Alias "fRemoveShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String) As Long
---- 其中lpstrDirName指定了程序组的名称;lpstrfoldername指定保存快捷方式的文件夹,默认为“c:/Windows/start menu/programs”,lpstrlinkname指定快捷方式的文件名,lpstrpathname指定快捷方式所指向的应用程序或文件。
---- 下面的代码具体演示了以上三个函数的用法:
---- 首先在VB下新建“工程”,然后在Form1的“通用”,“声明”部分输入上面列出的函数声明,然后在Form1上添加三个命令按钮,在其Click事件中分别输入:
Private Sub Command1_Click() Dim lresult As Long '在桌面创建记事本的快捷方式 lresult = OSfCreateShellLink("../../desktop", "记事本", "c:/Windows/notepad.exe", "")
'在开始菜单创建记事本的快捷方式 lresult = OSfCreateShellLink("../../start menu", "记事本", "c:/Windows/notepad.exe", "")
'在程序菜单的Test程序组下创建记事本的快捷方式 lresult = OSfCreateShellLink("test", "记事本", "c:/Windows/notepad.exe", "") End Sub
Private Sub Command2_Click() Dim lresult As Long '在程序菜单中添加一个名为Test的程序组 lresult = OSfCreateShellGroup("Test") End Sub
Private Sub Command3_Click() Dim lresult As Long '删除开始菜单上的快捷方式 lresult = OsfRemoveShellLink ("../../start menu", "记事本") '删除桌面上的快捷方式 lresult = OsfRemoveShellLink ("../../desktop", "记事本") '删除Test程序组下的快捷方式 lresult = OSfRemoveShellLink("Test", "记事本") End Sub
---- 按F5运行工程1,单击命令按钮就可以看到实际的效果了。
 
|