分享

创建和删除快捷方式

 yuxinrong 2010-01-13
创建和删除快捷方式--
下一节

  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", "记事本")

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多