首先保证你有权限:运行应用程序、建立目录
这里要说的不是API,是WScript.Shell对象。
创建文件及目录的快捷方式的源码如下:
创建模块并粘贴以下代码:
Option Explicit
'参数:快捷方式名称[.LNK];快捷方式图标所在文件及图标序号;文件原始路径;[文件名及扩展名];[快捷方式热键];[快捷方式备注];[快捷方式目标路径]
Public Sub mShellLnk(ByVal LnkName As String, IconFileIconIndex As String, ByVal FilePath As String, Optional ByVal FileName As String, Optional ByVal HookKey As String = "", Optional ByVal StrRemark As String = "", Optional ByVal strDesktop As String = "")
Dim WshShell As Object, WScript As Object, oShellLink As Object
Set WshShell = CreateObject("WScript.Shell")
If strDesktop = "" Then strDesktop = WshShell.SpecialFolders("Desktop") '桌面路径
If UCase(Right(LnkName, 4)) = ".LNK" Then
Set oShellLink = WshShell.CreateShortcut(strDesktop & "/" & LnkName) '创建快捷方式,参数为路径和名称
Else
Set oShellLink = WshShell.CreateShortcut(strDesktop & "/" & LnkName & ".lnk")
End If
oShellLink.TargetPath = FilePath & "/" & FileName
oShellLink.WindowStyle = 1 '风格
oShellLink.Hotkey = HookKey '热键
oShellLink.IconLocation = IconFileIconIndex '图标
oShellLink.Description = StrRemark '快捷方式备注内容
oShellLink.WorkingDirectory = FilePath '源文件所在目录
oShellLink.Save '保存创建的快捷方式
Set WshShell = Nothing
Set oShellLink = Nothing
End Sub
调用方式如下:
创建窗体并粘贴以下代码:
Private Sub Form_Click()
'===========================================
'演示创建目录的桌面快捷方式
'===========================================
'创建C盘的桌面快捷方式
mShellLnk "演示程序创建的 C盘快捷方式.lnk", "Explorer.exe, 0", "C:/", "", "Ctrl+Shift+C", "C盘"
'===========================================
'演示创建文件的桌面快捷方式
'===========================================
'在C盘根目录创建记事本的桌面快捷方式
mShellLnk "演示程序创建的 记事本快捷方式.lnk", "NOTEPAD.exe, 0", "NOTEPAD.EXE", "", "Ctrl+Shift+N", "记事本", "D:/"
End Sub
OK,运行查看结果吧。
标题当中提到了创建我的电脑的快捷方式,呵呵,上面的代码是实现不了的。不过根本就不麻烦。
在Private Sub Form_Click()事件中加入以下一句
'===========================================
'演示在D盘根目录创建我的电脑快捷方式
'===========================================
MkDir "d:/演示程序创建的 我的电脑快捷方式.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
再运行看看:
结果1:在D盘根目录创建了我的电脑的快捷方式,OK?
结果2:这个快捷方式没有扩展名。在DOS下可以DIR看见也可以CD进去,但是WINDOWS下你双击,嘿嘿。
结果3:重复运行了2次创建C盘的桌面快捷方式、在C盘根目录创建记事本的桌面快捷方式的代码,但没有重复创建。
继续说明一下,虽然被同志们都说的烂烂的了:
MkDir "d:/演示程序创建的 我的电脑快捷方式.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"一句,只要不改变 .{20D04FE0-3AEA-1069-A2D8-08002B30309D} 部分(注意,前面有个点),就可以创建我的电脑的快捷方式。实际上 {20D04FE0-3AEA-1069-A2D8-08002B30309D} 是查找注册表得到的,在运行当中输入REGEDIT,调用注册表,查找“我的电脑”就可以得到这个串(分支名),忘记叫什么名堂了,好象什么G什么D的,哈哈,同样的,查找回收站等等或者直接在刚才的分支上下来查看,都可以得到很多有趣的结果,然后创建一个文件夹,将其扩展名改成刚才找到的分支名即可。曾经有大侠还在电脑报上提过这种方式用来隐藏文件。。。呵呵。。不多说了。