调用DLL获取磁盘结构信息

调用DLL获取磁盘结构信息,第1张

调用DLL获取磁盘结构信息,第2张

在编程时,我们经常需要用到系统中可用磁盘的一些信息。在Visual FoxPro中,我们可以使用DiskSpace()和Sys(2022)来获取剩余的空空间和集群大小。但是,如果我们需要有关磁盘组织的其他信息,如卷标和序列号,这些信息不能通过使用VFP提供的功能直接获得。介绍了访问动态链接库,调用DLL函数GetLogicalDriverStrings、GetDriveType、GetVolumeInformation、GetDiskFreeSpace获取磁盘组织重要信息的方法,以便在文件创建和软件注册中应用。这四个功能的主要功能如下:

GetLogicalDriverStrings:用于获取可用的磁盘代码(驱动器号),包括硬盘的逻辑分区。

GetDriveType:用于获取磁盘类型,以区分是软盘驱动器、硬盘、网络驱动器、CDROM还是RAM虚拟磁盘。

GetVolumeInformation:用于获取磁盘卷的相关信息,包括磁盘卷标、序列号、文件名的各个部分(如路径中“\”和“\”之间部分的长度)以及文件系统的一些特性。

GetDiskFreeSpace:用于获取与磁盘组织相关的信息,如每个簇的扇区数、每个扇区的字节数、剩余簇数、簇总数等。

这四个函数包含在%SystemRoot%\System32\

Kernel32.dll,在调用时,需要用DECLARE命令注册DLL函数并指定参数的数量和类型。您还可以在参数前添加“@”,以强制通过引用传递它们。函数名区分大小写,WIN32API被指定为库名。Visual FoxPro会自动在Kernel32.dll中找到被调用的32位Windows DLL函数。如图1所示,运行测试表单可以扫描当前系统上所有可用的驱动器号,并显示在驱动器号下拉框中。具体实现方法描述如下。

创建表单

创建一个窗体,并在窗体的激活过程中添加代码。添加的代码如下:

获取当前系统上所有可用的磁盘代码,并将它们用作表单中驱动器号组合框的值。※

sAvaiDsk公共汽车司机

在Win32api中将整数GetLogicalDriveStrings声明为GetLogDsk INTEGER nBufferLength,STRING lpBuffer

IngRetVal=0

sAllDrivers = SPACE(128)

& &获取所有可用的磁盘代码

lngRetVal = GetLogDsk(LEN(sall drivers),@sAllDrivers)

清除DLLS

sAllDrivers=TRIM(sAllDrivers)

Sall drivers = "a: \ b: \ c: \ ... ",其中驱动器号由chr(0)分隔,使用了" "。※

sall drivers = CHR tran(sall drivers,CHR(0),",")

this form . sall dsk . value = sall drivers

this form . combo 1 . additem(sall drivers)

& &将可用的驱动器号添加到组合1的选项中。

这里可以将不同磁盘类型对应的图标(或位图)添加到盘符组合框的combo1.picture属性中,如图1所示,显示了带图标的组合下拉列表,代码省略。

查询磁盘信息

如果您想在drive letter下拉框中选择任何可用的磁盘,它的结构信息将立即显示出来,如图2所示。这需要在单击驱动器号组合框combo1中添加以下代码:

str drive = TRIM(this form . combo 1 . value)+" \ "

将win32api中的整数GetDriveType声明为GetDrType字符串nDrive

维度DskType(5)

& &确定以下磁盘类型。

Dsktype(1)= "软盘"

&& GetDrType(strDrive)=2

> Dsktype(2)= "硬盘"

&& GetDrType(strDrive)=3

Dsktype(3)= "网络驱动器"

&& GetDrType(strDrive)=4

Dsktype(4)="CDROM "

&& GetDrType(strDrive)=5

DSK类型(5)=“RAM虚拟驱动器”

&& GetDrType(strDrive)=6

this form . text 2 . value = dsk type(getdr type(str drive)-1)

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 调用DLL获取磁盘结构信息

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情