网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.VB中OLE调用的优化方法.
.如何将整个画面暗下来,如同关机.
.VB中调用Word拼写检查.
.再谈VB程序的加密.
.从文件中提取图标.
.函数名巧做局部变量.
.在VB组件内调用Excel2000实现GIF.
.利用VB设计打印复杂报表.
.VB从零开始编外挂(六).
.HierarchicalFlexGrid控件.
.VB从零开始编外挂(九).
.得知目前Mouse所指的MenuItem是哪.
.如何用VB设计动画时钟举例.
.StatusBar显示数据库的属性.
.VBCOM基础讲座之ActiveXEXEs.
.用VB改变屏幕的分辨率和刷新频率.
.用VB编写一个光驱保镖.
.FLIC动画文件的播放程序设计.
.在程序中打开Internet拨号连接窗.
.善用AssumeNoAliasing编译选项.

VB中用API函数实现文件夹列表

发表日期:2006-2-27


----在安装软件等一些操作中,需要用户指定安装路径,现在软件的安装界面都是非常友好的,一般来说给出一个缺省路径,用户如不满意可以在文件夹列表中选择其他的路径。在WIN9X下,一般不再采用原来的先在驱动器列表框中选择驱动器再在相应的驱动器中选择相应文件夹的界面,而是采用的类似资源管理器中“所有文件夹”界面:最上层是“桌面”,然后是“我的电脑”、驱动器A、C、D...等,在一个列表框中用户可实现浏览所有驱动器及文件夹的操作。这种特色的文件列表没有现成的控件可供使用,但利用API函数可方便地实现。

----实现方法: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。->

上一篇:用API函数遍历指定驱动器、目录的文件 人气:2751
下一篇:如何在VB中使用回调(CallBack)过程 人气:4077
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐