南京大学资深教授名单:用API函数实现文件夹列表

来源:百度文库 编辑:中财网 时间:2024/04/24 04:12:26
用API函数实现文件夹列表 作者:冰川

 

易语言中用API函数实现文件夹列表 在安装软件等一些操作中,需要用户指定安装路径,现在软件的安装界面都是非常友好的,一般来说给出一个缺省路径,用户如不满意可以在文件夹列表中选择其他的路径。

在WIN9X下,一般不再采用原来的先在驱动器列表框中选择驱动器再在相应的驱动器中选择相应文件夹的界面,而是采用的类似资源管理器中“所有文件夹”界面:最上层是“桌面”,然后是“我的电脑”、驱动器A、C、D...等,在一个列表框中用户可实现浏览所有驱动器及文件夹的操作。这种特色的文件列表没有现成的控件可供使用,但利用API函数可方便地实现。

---- 实现方法:API函数SHBrowseForFolder可以提供这样的文件列表,它需要用到一个"浏览信息"类型,此类型包括了列表框使用的参数,此类型的声明见下面的程序,其中这里用到的几个参数简单说明一下: ---- 窗口句柄 —当前窗口的句柄。

---- 根路径 —从何根路径开始展开文件夹,缺省情况下从“桌面”开始展开。

---- 目录树标题 —目录树上方的标题,用来给用户一些提示信息。

---- 标志控制项 —显示标志控制项:比如若赋值为BIF_BROWSEFORCOMPUTER,则只有当用户选择“我的电脑”时“确定”按钮才有效,这里我们需要的是 BIF_RETURNONLYFSDIRS,只有用户选择的是文件夹时“确定”按钮才有效。 此函数返回值是指向项目(ITEM)的一个指针,有了这个数值,再用API函数SHGetPathFromIDList可以获得具体的路径,如果用户按的是“取消”按钮,则返回值为NULL。

下面是一个例子,在窗体中放置一个命令按钮command1、一个文本框Text1,在窗体的声明部分API声明函数和类型及常量如下:

Dll命令:取文件夹列表返回值类型:整数型 Dll库文件名:shell32.dll
在Dll库中的命令名:SHGetPathFromIDListA
参数:信息值 数据类型:整数型
参数:路径 数据类型:文本型

Dll命令:浏览文件夹返回值类型:整数型 Dll库文件名:shell32.dll
在Dll库中的命令名:SHBrowseForFolderA
参数:浏览信息 数据类型:浏览信息 自定义数据类型:
浏览信息 成员:窗口句柄 数据类型:整数型
                  成员:根路径 数据类型:整数型
                  成员:显示名 数据类型:文本型
                  成员:目录树标题 数据类型:文本型 
                  成员:标志控制项 数据类型:整数型
                  成员:lpfn 数据类型:整数型
                  成员:lParam 数据类型:整数型
                  成员:iImage 数据类型:整数型

子程序:_按钮1_被单击

局部容器:信息 数据类型:浏览信息
局部容器:返回值 数据类型:整数型
局部容器:信息值 数据类型:整数型
局部容器:路径 数据类型:文本型

信息.窗口句柄 = _启动窗口.取窗口句柄 ()
信息.根路径 = 0
信息.目录树标题 = “请选择软件安装路径:”
信息.标志控制项 = 1
信息值 = 浏览信息 (信息) 路径 = 取空白文本 (512)

返回值= 取文件夹列表 (信息值, 路径)

如果 (返回值 ≠ 0) 编辑框1.内容 = 路径
否则 编辑框1.内容 = “”
如果结束

运行此程序,单击命令按钮,就可以看到和资源管理器中一样的“所有文件夹”列表了。

---- 此程序在易语言下调试通过.