| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1008 人关注过本帖
标题:关于fCreateShellLink有两个参数不明
只看楼主 加入收藏
weiyi75
Rank: 1
等 级:新手上路
威 望:1
帖 子:43
专家分:0
注 册:2006-9-7
收藏
 问题点数:0 回复次数:1 
关于fCreateShellLink有两个参数不明

窗口代码

Option Explicit

Private Sub CmdAddStartup_Click() '在开始菜单的启动程序组下创建记事本的快捷方式

Call fCreateShellLink("\启动", "记事本", GetWindowsPath & "\Notepad.exe", "", True, "$(Programs)")

End Sub

Private Sub CmdAddDeskTop_Click() '在桌面创建记事本的快捷方式

Call fCreateShellLink("..\..\桌面", "记事本", GetWindowsPath & "\Notepad.exe", "", True, "$(Programs)")

End Sub

Private Sub CmdAddProgram_Click() '在程序菜单的Notepad程序组下创建记事本的快捷方式

Call OSfCreateShellGroup("Notepad") '先建立程序组

Call fCreateShellLink("Notepad", "记事本", GetWindowsPath & "\Notepad.exe", "", True, "$(Programs)")

End Sub

Private Sub CmdAddStartMenu_Click()

Call fCreateShellLink("..\..\「开始」菜单", "记事本", GetWindowsPath & "\Notepad.exe", "", True, "$(Programs)")

End Sub

Private Sub CmdQuickLaunch_Click() '在快捷工具栏下创建记事本的快捷方式

Call fCreateShellLink("..\..\Application Data\Microsoft\Internet Explorer\Quick Launch", "记事本", GetWindowsPath & "\Notepad.exe", "", True, "$(Programs)")

End Sub

Private Sub CmdDelAllLink_Click()

Call OSfRemoveShellLink("..\..\「开始」菜单", "记事本") '删除开始菜单上的快捷方式

Call OSfRemoveShellLink("..\..\桌面", "记事本") '删除桌面上的快捷方式

'Call OSfRemoveShellLink("Notepad", "记事本") '删除Notepad程序组下的快捷方式,这样不能删除程序组

Call RemoveShellGroup '删除Notepad程序组下的快捷方式

Call OSfRemoveShellLink("\启动", "记事本") '删除启动菜单下的快捷方式

Call OSfRemoveShellLink("..\..\Application Data\Microsoft\Internet Explorer\Quick Launch", "记事本") '删除快捷工具栏下的快捷方式

End Sub

Private Sub RemoveShellGroup()

On Error GoTo ToExit '打开错误陷阱

'------------------------------------------------

'RmDir删除一个存在的目录或文件夹。语法RmDir Path
'必要的 path 参数是一个字符串表达式,用来指定要删除的目录或文件夹。path 可以包含驱动器。如果没有指定驱动器,则 RmDir 会在当前驱动器上删除目录或文件夹。
'说明如果想要使用 RmDir 来删除一个含有文件的目录或文件夹,则会发生错误。在试图删除目录或文件夹之前,先使用 Kill 语句来删除所有文件。

Kill (GetProgarmPath(Me.hWnd) & "\Notepad\记事本.lnk")
RmDir (GetProgarmPath(Me.hWnd) & "\Notepad")

'------------------------------------------------

Exit Sub

'----------------

ToExit:

Resume Next

End Sub


模块代码

Option Explicit

'-----------------------------------------------------
' 创建和删除快捷方式
'-----------------------------------------------------
' 洪恩在线 求知无限
'-----------------------------------------------------
'------名称-------------------作用--------------------
' CmdAddStartup "创建启动程序组快捷方式"
' CmdAddDeskTop "创建桌面快捷方式"
' CmdAddStartMenu "创建开始菜单快捷方式"
' CmdAddProgram "创建程序组下的快捷方式"
' CmdQuickLaunch "创建快捷工具栏的快捷方式"
' CmdDelAllLink "删除所有快捷方式"
'-----------------------------------------------------
'要在VB中创建Windows的快捷方式,需要用到VB的两个动态链接库
'Vb5stkit.dll和Vb6stkit.dll。这两个动态链接库中提供了三个函数
'OSfCreateShellGroup、fCreateShellLink、OSfRemoveShellLink
'分别用于创建快捷方式程序组、创建快捷方式和删除快捷方式。
'-----------------------------------------------------

Declare Function OSfCreateShellGroup Lib "Vb5stkit.dll" _
Alias "fCreateShellFolder" (ByVal lpstrDirName As String) As Long

'lpstrDirName指定了程序组的名称

Declare Function fCreateShellLink Lib "Vb6stkit.dll" _
(ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, _
ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long

'-----------------------------------------------------

'lpstrfoldername指定保存快捷方式的文件夹
'lpstrlinkname指定快捷方式的文件名
'lpstrLinkpathe指定快捷方式所指向的应用程序或文件
'lpstrLinkArguments是程序运行所需的参数
'fPrivate True ???
'sParent 上一层文件夹

Declare Function OSfRemoveShellLink Lib "Vb6stkit.dll" Alias _
"fRemoveShellLink" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String) As Long

'获取Windows目录
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

'获得文件夹路径
Private Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" (ByVal hwndOwner As Long, ByVal lpszPath As String, ByVal nFolder As Long, ByVal fCreate As Long) As Long

Private Const Max_Path = 260 '缓冲区大小
Private Const CSIDL_PROGRAMS = &H2 '程序组常量

'*************************************************************************
'**函 数 名: GetWindowsPath
'**输 入: 无
'**输 出: (String) -
'**功能描述: 得到Windows路径
'**全局变量:
'**调用模块:
'**作 者: Mr.David
'**日 期: 2006-09-19 19:49:17
'**修 改 人:
'**日 期:
'**版 本: V1.0.0
'*************************************************************************

Public Function GetWindowsPath() As String

Dim ChrLen As Long, WinDir As String

WinDir = Space$(Max_Path)
ChrLen = GetWindowsDirectory(WinDir, Max_Path)

WinDir = Left$(WinDir, ChrLen)
GetWindowsPath = WinDir

End Function

'*************************************************************************
'**函 数 名: GetProgarmPath
'**输 入: frmHwnd(Long) -
'**输 出: (String) -
'**功能描述: 获取开始菜单程序组的路径
'**全局变量:
'**调用模块:
'**作 者: Mr.David
'**日 期: 2006-09-19 19:48:16
'**修 改 人:
'**日 期:
'**版 本: V1.0.0
'*************************************************************************

Public Function GetProgarmPath(frmHwnd As Long) As String

Dim CSILD_NUM As Long, strBouff As String

strBouff = String$(Max_Path, 0)

SHGetSpecialFolderPath frmHwnd, strBouff, CSIDL_PROGRAMS, 0
GetProgarmPath = Left$(strBouff, InStr(1, strBouff, Chr$(0)) - 1)

End Function

搜索更多相关主题的帖子: 参数 
2006-09-21 08:52
weiyi75
Rank: 1
等 级:新手上路
威 望:1
帖 子:43
专家分:0
注 册:2006-9-7
收藏
得分:0 

其中

Declare Function fCreateShellLink Lib "Vb6stkit.dll" _
(ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, _
ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long

'-----------------------------------------------------

'lpstrfoldername指定保存快捷方式的文件夹
'lpstrlinkname指定快捷方式的文件名
'lpstrLinkpathe指定快捷方式所指向的应用程序或文件
'lpstrLinkArguments是程序运行所需的参数
'fPrivate True ???
'sParent 上一层文件夹

'fPrivate True 这个参数有什么用途,true和false结果都相同
'sParent 上一层文件夹,这里更米糊,你想想桌面和开始菜单和启动菜单和快捷工具栏的上一级目录怎么会是同样的,还望指点。

2006-09-21 08:52
快速回复:关于fCreateShellLink有两个参数不明
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031827 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved