万卷书>>电脑书籍>>程序设计>>pb程序设计>>PowerBuilder使用技巧集

WANJUANSHU.COM

PB API函数应用技巧六则
江苏省镇江市
蔡可训
技巧1: 获得Windows系统目录



---- 关键:GetWindowsDirectoryA 和GetSystemDirectoryA API函数



---- 1.创建含有如下控件的窗体:

控件 控件名 text 标签 st_1 windows目录: 标签 st_2 系统目录: 单行编辑框
sle_1 单行编辑框 sle_2
---- 2.首先声明如下外部函数:
Function uint GetWindowsDirectoryA(ref string dirtext, uint textlen) library
"KERNEL32.DLL" Function uint GetSystemDirectoryA(ref string dirtext, uint
textlen) library &quot;KERNEL32.DLL&quot;<br>
<font color="#ffffff">----</font> 3.在窗体的open事件中输入如下语句: <xmp> 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



技巧2:获取驱动器类型.



---- 关键:GetDriveTypeA API函数



---- 1.创建含有如下控件的窗体:

控件 控件名 text 标签 st_1 输入盘符: 标签 st_2 获取驱动器类型:
单行编辑框 sle_1 单行编辑框 sle_2 <br>
<font color="#ffffff">----</font> 2.首先声明如下外部函数: <xmp> Function long
GetDriveTypeA(string nDrive) Library &quot;kernel32&quot;<br>
<font color="#ffffff">----</font> 3.在单行编辑框Sle2的modified事件中输入如下语句:
<xmp>long ll_drive string drvinfo ll_drive=GetDriveTypeA(sle_1.text) CHOOSE CASE ll_drive CASE
2 drvinfo='可移动驱动器' CASE 3 drvinfo='固定驱动器' CASE 4 drvinfo='网络驱动器'
CASE 5 drvinfo='CD-ROM驱动器' CASE ELSE drvinfo='不是驱动器' END CHOOSE
sle_2.text=drvinfo </span></p>
<BR>
<p><span style="font-size: 9pt">
技巧3:获取键盘类型.



---- 关键:GetKeyboardType API函数



---- 1.创建含有如下控件的窗体:

控件 控件名 text 标签 st_1 键盘类型: 单行编辑框 sle_1
-
--- 2.首先声明如下外部函数:
Function long GetKeyboardType (long
nTypeFlag) Library &quot;user32&quot;<br>
<font color="#ffffff">----</font> 3.在窗体的open事件中输入如下语句: <xmp> long
ll_keyboardtype string kbinfo ll_keyboardtype=GetKeyboardType(0) CHOOSE CASE
ll_keyboardtype CASE 1 kbinfo='IBM PC/XT OR COMPATIBLE(83KEY)' CASE 2 kbinfo='OLIVETTI
(102KEY)' CASE 3 kbinfo='IBM AT OR SIMILAR(84KEY)' CASE 4 kbinfo='IBM ENHANCE(101 OR
102KEYS)' CASE 5 kbinfo='NOKIA 1050 OR SIMILAR' CASE 6 kbinfo='NOKIA 9140' CASE 7
kbinfo='JAPAN KEYBOARD' END CHOOSE SLE_1.TEXT=KBINFO



技巧4:获取硬盘容量.



---- 关键: GetDiskFreeSpaceA API函数



---- 1.创建含有如下控件的窗体:

控件 控件名 text 标签 st_1 C盘可用容量: 标签 st_2 C盘容量:
单行编辑框 sle_1 单行编辑框 sle_2
---- 2.首先声明如下外部函数:
Function uint GetDiskFreeSpaceA(string lpRootPathName, ref long lpSectorsPerCluster,ref
long lpBytesPerSector,ref long lpNumberOfFreeClusters, ref long lpTotalNumberOfClusters)
Library &quot;kernel32&quot;<br>
<font color="#ffffff">----</font> 3.在窗体的open事件中输入如下语句: <xmp> long
secs,bytes,cls1,cls2,cls3,cls4 GetDiskFreeSpaceA(&quot;c:\&quot;,secs,bytes,cls1,cls2)
cls3=cls1*secs*bytes cls4=cls2*secs*bytes sle_1.text=string(cls3)+'字节'
sle_2.text=string(cls4)+'字节'



技巧5:显示和隐藏windows98任务栏.



---- 关键:FindWindowExA和ShowWindow API函数



---- 1. 创建含有如下控件的窗体:

控件 控件名 text 命令按钮 Cb_1 隐藏WINDOWS98任务条
命令按钮 Cb_2 显示WINDOWS98任务条 <br>

---- 2.首先声明如下外部函数:
Function long
FindWindowExA ( long hWnd, long hWndChild, ref string lpszClassName, ref string
lpszWindow) library 'user32' Function long ShowWindow (long hWnd, long nCmdShow ) library
'user32'<br>
<font color="#ffffff">----</font> 3.在命令按钮cb_1的Clicked事件中输入如下语句:
<xmp>Constant Long SW_SHOW = 5 String ShellTaskBarWnds = &quot;Shell_TrayWnd&quot; String Nulls
Long TaskBars TaskBars=FindWindowExA(0,0,ShellTaskBarWnds,Nulls)
ShowWindow(TaskBars,SW_SHOW )<br>
<font color="#ffffff">----</font> 4. 在命令按钮cb_2的Clicked事件中输入如下语句:
<xmp>Constant Long SW_HIDE = 0 String ShellTaskBarWnds = &quot;Shell_TrayWnd&quot; String Nulls
Long TaskBars TaskBars=FindWindowExA(0,0,ShellTaskBarWnds,Nulls)
ShowWindow(TaskBars,SW_HIDE )



技巧6:闪动标题栏.



---- 关键:FlashWindow 和FindWindowA API函数



---- 1.创建含有如下控件的窗体:(插入ACTIVEX的ctClock控件.)

控件 控件名 text ctClock ole_1<br>

---- 2.首先声明如下外部函数:
FUNCTION long
FlashWindow(ulong hwnd, long bInvert) Library &quot;user32&quot; FUNCTION long
FindWindowA( ulong Winhandle, string wintitle ) Library &quot;user32&quot;<br>

---- 3.在ole_1控件的Timechanged事件中输入如下语句:
long ll_hwnd ll_hwnd = FindWindowA(0,&quot;闪动的时钟&quot;) FlashWindow(ll_hwnd,1)</span></p>
<BR>
<p><span style="font-size: 9pt"> </span></p>
<BR>
<p><span style="font-size: 9pt"> 
---- 以上程序在WINDOWS98中文版,POWERBUILDER6.0软件环境下运行通过。
上一页 WanJuanShu.COM  
WANJUANSHU.COM 万卷书