网站首页/技术开发列表/内容

创建与删除快捷方式

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

  
  我们先来声明以上几个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:Windowsstartmenuprograms"
lpstrlinkname String,指定快捷方式的名称
lpstrpathname String,指定快捷方式所指向的应用程序或文件
返回值 Long,非零表示成功,零表示失败

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

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

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

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

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

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

    lresult = OSfCreateShellLink("....start menu", "记事本", "c:Windows otepad.exe", "")
   2、添加快捷方式到程序菜单(开始菜单中的“程序”子菜单)中

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

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

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

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

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

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

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

……

相关阅读