设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4031|回复: 6
打印 上一主题 下一主题

[模块/函数] 请问如何用代码创建一个文件夹并建立快捷方式?

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-27 09:18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求教高手一段代码。
我想在如D盘里创一个文件夹,文件夹名称用字段里的名称,并且把此文件夹创建快捷方式发送到桌面上。
先谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-8-27 10:37:14 | 只看该作者
mkdir可创建文件夹,但创建快捷方式 有难度,要高手出马
3#
 楼主| 发表于 2008-9-17 00:03:56 | 只看该作者

创建快捷文件夹

经过我一天的查阅资料和调试,终于搞掂是怎样实现的。以下是代码,注意要加载Windows Script Host Object Model选项
现在我的D盘里有一个文件名为“3”的文件夹,现在是创建快捷方式到桌面并命名为“55”。
Private Sub dzm_Click()
Dim strDesktop As String
    Dim strPrograms As String
    Dim wsh As New WshShell
    Dim strAppPath As String
    strAppPath = "d:\3"
    strDesktop = wsh.SpecialFolders("Desktop")
    Set objShellLink = wsh.CreateShortcut(strDesktop & "\55.lnk")
    objShellLink.TargetPath = strAppPath
    objShellLink.WorkingDirectory = strDesktop
    objShellLink.Save
End Sub
以上过程在ACCESS2007中已经成功通过!
4#
发表于 2008-9-25 17:49:29 | 只看该作者
好代码
5#
发表于 2008-9-26 01:06:08 | 只看该作者
创建文件夹:

'需要引用Microsoft Scripting Runtime
Public Sub CreateFolder(ByVal folder As String)
Dim fso As New FileSystemObject
        If Not fso.FolderExists(folder) Then
            fso.CreateFolder (folder)
        End If
    Set fso = Nothing
End Sub


或者

Public Sub CreateFolder(ByVal folder As String)
Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
        If Not fso.FolderExists(folder) Then
            fso.CreateFolder (folder)
        End If
    Set fso = Nothing
End Sub
6#
发表于 2008-9-26 01:11:26 | 只看该作者
'-----------------------------------------------------
'               创建和删除快捷方式
'-----------------------------------------------------
'               洪恩在线  求知无限
'-----------------------------------------------------
'------名称-------------------作用--------------------
'       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
7#
发表于 2008-9-26 01:12:48 | 只看该作者
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的程序组,其参数的意义如下:
参数:意义 
lpstrDirNameString,lpstrDirName指定了要创建的程序组的名称
返回值
Long,非零表示成功,零表示失败
  

其中OSfCreateShellLink函数的作用在指定的文件夹内创建快捷方式,其参数的意义如下:
参数:意义
lpstrfoldernameString,指定保存快捷方式的文件夹,默认为"c:\Windows\startmenu\programs"
lpstrlinkname String,指定快捷方式的名称
lpstrpathnameString,指定快捷方式所指向的应用程序或文件
返回值Long,非零表示成功,零表示失败


其中OSfRemoveShellLink函数的作用是删除一个已经建立的快捷方式,其参数的意义如下:
参数:意义
lpstrFolderNameString,指定了要删除的快捷方式所在的文件夹
lpstrLinkName String,指定了要删除的快捷方式的名称
返回值Long,非零表示成功,零表示失败


[ 本帖最后由 fan0217 于 2008-9-26 01:15 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 05:42 , Processed in 0.107559 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表