打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
创建和删除快捷方式
创建和删除快捷方式--
下一节

  OSfCreateShellGroup,OSfCreateShellLink,OSfRemoveShellLink三个API函数存在于VB的一个动态连接库Vb5stkit.dll中,使用它们可以方便的创建桌面上或是开始菜单中的快捷方式。

  为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:

 
'-----------------------------------------------------
'               创建和删除快捷方式
'-----------------------------------------------------
'               洪恩在线  求知无限
'-----------------------------------------------------
'------名称-------------------作用--------------------
'       CmdAdd1             "创建test程序组快捷方式"按钮
'       CmdAdd2             "创建桌面快捷方式"按钮
'       CmdAdd3             "创建开始菜单快捷方式"按钮
'       CmdAdd4             "创建Test程序组下的快捷方式"按钮
'       CmdDel              "删除所有快捷方式"按钮
'-----------------------------------------------------
'要在VB中创建Windows的快捷方式,需要用到VB的一个动态链接库
'Vb5stkit.dll。在该动态链接库中提供了三个函数
'OSfCreateShellGroup、OSfCreateShellLink、OSfRemoveShellLink
'分别用于创建快捷方式程序组、创建快捷方式和删除快捷方式。
'-----------------------------------------------------
Private Declare Function OSfCreateShellGroup Lib "Vb5stkit.dll" _
Alias "fCreateShellFolder" (ByVal lpstrDirName As String) As Long
'lpstrDirName指定了程序组的名称
'-----------------------------------------------------
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
'lpstrfoldername指定保存快捷方式的文件夹,默认为“c:\Windows\start menu\programs”
'lpstrlinkname指定快捷方式的文件名
'lpstrpathname指定快捷方式所指向的应用程序或文件
'-----------------------------------------------------
Private Declare Function OSfRemoveShellLink Lib "Vb5stkit.dll" _
Alias "fRemoveShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String) As Long

Dim lresult As Long
Private Sub CmdAdd1_Click()
    Dim lresult As Long
    '在程序菜单中添加一个名为Test的程序组
    lresult = OSfCreateShellGroup("Test")
End Sub

Private Sub CmdDel_Click()
Dim lresult As Long
    '删除开始菜单上的快捷方式
    lresult = OSfRemoveShellLink("..\..\start menu", "记事本")
    '删除桌面上的快捷方式
    lresult = OSfRemoveShellLink("..\..\desktop", "记事本")
    '删除Test程序组下的快捷方式
    lresult = OSfRemoveShellLink("Test", "记事本")
   
End Sub

Private Sub CmdAdd2_Click()
    Dim lresult As Long
    '在桌面创建记事本的快捷方式
    lresult = OSfCreateShellLink("..\..\desktop", "记事本", "c:\Windows\notepad.exe", "")
End Sub

Private Sub CmdAdd4_Click()
    '在程序菜单的Test程序组下创建记事本的快捷方式
    lresult = OSfCreateShellLink("test", "记事本", "c:\Windows\notepad.exe", "")
End Sub

Private Sub CmdAdd3_Click()
    '在开始菜单创建记事本的快捷方式
    lresult = OSfCreateShellLink("..\..\start menu", "记事本", "c:\Windows\notepad.exe", "")
End Sub
(源程序下载)

  我们先来声明以上几个API函数,如下所示:
   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

  其中OSfCreateShellGroup函数的作用是在程序菜单中添加一个名为lpstrDirName的程序组,其参数的意义如下:

参数: 意义 
lpstrDirName

String,lpstrDirName指定了要创建的程序组的名称

返回值

Long,非零表示成功,零表示失败

  其中OSfCreateShellLink函数的作用在指定的文件夹内创建快捷方式,其参数的意义如下:

参数: 意义
lpstrfoldername String,指定保存快捷方式的文件夹,默认为"c:\Windows\startmenu\programs"
lpstrlinkname String,指定快捷方式的名称
lpstrpathname String,指定快捷方式所指向的应用程序或文件
返回值 Long,非零表示成功,零表示失败

  其中OSfRemoveShellLink函数的作用是删除一个已经建立的快捷方式,其参数的意义如下:

参数: 意义
lpstrFolderName String,指定了要删除的快捷方式所在的文件夹
lpstrLinkName String,指定了要删除的快捷方式的名称
返回值 Long,非零表示成功,零表示失败

  声明完后就可以在程序中使用这几个函数了,我们先来创建一个桌面上的快捷方式吧,只须一句代码即可:

    lresult = OSfCreateShellLink("..\..\desktop", "记事本", "c:\Windows\notepad.exe", "")

  其中"..\..\desktop"是指桌面所在的目录,"记事本"是快捷方式的名称,而快捷方式所指向的目标文件是"c:\windows\notepad.exe"。

  下面看看怎么添加快捷方式到开始和程序菜单中:
   1、添加快捷方式到开始菜单:

    lresult = OSfCreateShellLink("..\..\start menu", "记事本", "c:\Windows\notepad.exe", "")

   2、添加快捷方式到程序菜单(开始菜单中的“程序”子菜单)中

     '在程序菜单中添加一个名为Test的程序组
    lresult = OSfCreateShellGroup("Test")

     '在程序菜单的Test程序组下创建记事本的快捷方式
    lresult = OSfCreateShellLink("test", "记事本", "c:\Windows\notepad.exe", "")

  现在运行程序就能看到添加到各个位置的快捷方式了,删除这些快捷方式的方法也很简单,比如我们要删除刚才添加在桌面上的快捷方式,则可以用下面代码来实现。

    lresult = OSfRemoveShellLink("..\..\desktop", "记事本")

  同样的要删除开始和程序菜单中的快捷方式,只须使用如下语句即可:

     '删除开始菜单上的快捷方式
    lresult = OSfRemoveShellLink("..\..\start menu", "记事本")

     '删除Test程序组下的快捷方式
    lresult = OSfRemoveShellLink("Test", "记事本")

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB开机运行程序
如何在Windows操作系统中改变文件打开方式
VB爱好者乐园(VBGood) - 经验之谈 - VB编程的必备技巧
用VB制作简单的木马程序 -
VB中利用Windows API实现文件操作,VB教程,VB案例,VB实例
VB下几个非常有用的函数-VB控件-依恋网
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服