VB中用API函数实现文件夹列表
2018-06-17 17:15:18来源:未知 阅读 ()
----实现方法:API函数SHBrowseForFolder可以提供这样的文件列表,它需要用到一个BROWSEINFO类型,此类型包括了列表框使用的参数,此类型的声明见下面的程序,其中这里用到的几个参数简单说明一下:
----hwndOwner—当前窗口的句柄。
----pidlRoot—从何根路径开始展开文件夹,缺省情况下从“桌面”开始展开。
----lpszTitle—目录树上方的标题,用来给用户一些提示信息。
----ulFlags—显示标志控制项:比如若赋值为BIF_BROWSEFORCOMPUTER,则只有当用户选择“我的电脑”时“确定”按钮才有效,这里我们需要的是
----BIF_RETURNONLYFSDIRS,只有用户选择的是文件夹时“确定”按钮才有效。
----此函数返回值是指向项目(ITEM)的一个指针,有了这个数值,再用API函数SHGetPathFromIDList可以获得具体的路径,如果用户按的是“取消”按钮,则返回值为NULL。
----下面是一个例子,在窗体中放置一个命令按钮command1、一个文本框Text1,在窗体的声明部分API声明函数和类型及常量如下:
OptionExplicit
PrivateTypeBROWSEINFO
hOwnerAsLong
pidlRootAsLong
pszDisplayNameAsString
lpszTitleAsString
ulFlagsAsLong
lpfnAsLong
lParamAsLong
iImageAsLong
EndType
ConstBIF_RETURNONLYFSDIRS=&H1
PrivatepidlAsLong
PrivateDeclareFunction
SHGetPathFromIDList_
Lib"shell32.dll"Alias
"SHGetPathFromIDListA"_
(ByValpidlAsLong,ByVal
pszPathAsString)AsLong
PrivateDeclareFunction
SHBrowseForFolderLib"shell32.dll"_
Alias"SHBrowseForFolderA"_
(lpBrowseInfoAsBROWSEINFO)AsLong
----双击命令按钮,写如下代码:
PrivateSubcommand1_Click()
DimbiAsBROWSEINFO
DimrAsLong
DimpidlAsLong
DimpathAsString
DimposAsInteger
'句柄
bi.hOwner=Me.hWnd
'展开根目录
bi.pidlRoot=0&
'列表框标题
bi.lpszTitle="请选择软件安装路径:"
'规定只能选择文件夹,其他无效
bi.ulFlags=BIF_RETURNONLYFSDIRS
'调用API函数显示列表框
pidl=SHBrowseForFolder(bi)
'利用API函数获取返回的路径
path=Space$(512)
r=SHGetPathFromIDList(ByValpidl&,ByValpath)
IfrThen
pos=InStr(path,Chr$(0))
Text1=Left(path,pos-1)
Else:Text1=""
EndIf
EndSub
----运行此程序,单击命令按钮,就可以看到和资源管理器中一样的“所有文件夹”列表了。
----此程序在中文WIN95/98、中文VB5.0专业版下调试通过,也适用于VB4.0。->
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:减少DoEvents语句的数量
下一篇:用VB实现“木马”式隐形运行程序
- 用API函数Mcisendstring直接播放背景音乐 2018-06-17
- 利用API创建文件目录 2018-06-17
- 怎样在VB中声明和使用API函数 2018-06-17
- VB利用高级音频函数编写多媒体播放器 2018-06-17
- 用InStr函数实现代码减肥 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash