江苏省镇江市
蔡可训
技巧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 "KERNEL32.DLL"<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 "kernel32"<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 "user32"<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 "kernel32"<br>
<font color="#ffffff">----</font> 3.在窗体的open事件中输入如下语句: <xmp> 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)+'字节'
技巧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 =
"Shell_TrayWnd" 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 =
"Shell_TrayWnd" 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 "user32" FUNCTION long
FindWindowA( ulong Winhandle, string wintitle ) Library "user32"<br>
---- 3.在ole_1控件的Timechanged事件中输入如下语句:
long ll_hwnd ll_hwnd = FindWindowA(0,"闪动的时钟")
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软件环境下运行通过。
|
|