[返回]
中国计算机报2000年第43期
API函数应用技巧
褚健耘
一、获得Windows系统目录
1.创建含有如下控件的窗体(见图1):
| 控件 |
控件名 |
text |
| 标签 |
st_1 |
windows目录: |
| 标签 |
st_2 |
系统目录: |
| 单行编辑框 |
sle_1 |
|
| 单行编辑框 |
sle_2 |
|

图1
2.声明如下外部函数:
Function uint GetWindowsDirectoryA(ref string dirtext, uint textlen)
library "KERNEL32.DLL"
Function uint GetSystemDirectoryA(ref string dirtext, uint textlen)
library "KERNEL32.DLL"
3.在窗体的Open事件中输入如下语句:
String ls_WinPath,ls_syspath,ls_curpath
ls_WinPath = Space( 40 )
ls_syspath = Space( 40 )
GetWindowsDirectoryA( ls_WinPath, 60)
GetSystemDirectoryA(ls_syspath,60)
sle_1.text=ls_winpath
sle_2.text=ls_syspath
二、获取硬盘容量
1.创建含有如下控件的窗体(见图2):
| 控件 |
控件名 |
text |
| 标签 |
st_1 |
c盘可用容量: |
| 标签 |
st_2 |
c盘容量: |
| 单行编辑框 |
sle_1 |
|
| 单行编辑框 |
sle_2 |
|

图2
2.声明如下外部函数:
Function uint GetDiskFreeSpaceA(string lpRootPathName,ref long
lpSectorsPerCluster,ref long lpBytesPerSector,ref long
lpNumberOfFreeClusters,ref long lpTotalNumberOfClusters) Library
"kernel32"
3.在窗体open事件中输入如下语句:
long secs,bytes,cls1,cls2,cls3,cls4
GetDiskFreeSpaceA("c:\",secs,bytes,cls1,cls2)
cls3=cls1*secs*bytes
cls4=cls2*secs*bytes
sle_1.text=string(cls3)+'字节'
sle_2.text=string(cls4)+'字节'
以上程序在Windows 98中文版,PowerBuilder 6.0软件环境下运行通过。