Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->ViualBasic ->正文

API函数在VB中的应用

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-05 点击: [收藏] [投稿]
所谓API就是“应用程序接口”(ApplicationProgramingInterface),是一些用C语言编写,由操作系统自身调用的函数。WindowsAPI函数由许多“动态链接库”或DLL组成。在32位Windows中,核心的Windows
APIDLL有如下一些:
gdi32.dll----图形显示界面的API。
kernel32.dll----处理低级任务(比如内存和任务管理)的API。
user32.d11----处理窗口和消息(VisualBasic程序员能把其中一些当作事件访问)的API。
还不断有新的API出现,处理新的操作系统扩展,比如E-MAIL、联网和新的外设。
由于WindowsAPI函数不是VisualBasic的内部函数,所以在使用它们之前必须显式地加以声明。要想得到正确格式化的函数声明,可以访问WINAPI目录下的文件WIN32API.TXT。
本文只对Win95系统的API函数加以说明并调用Win95的内置功能。
重新启动计算机的实现
在Windows下安装过程序的用户可能都有这样的体会,当安装完某些应用程序后,安装程序会要求重新启动计算机以使设置生效。那么,如果要用VB程序重新启动计算机该如何实现呢?其实利用ExitWindowsEx函数即可。
程序的编写
1.首先运行VB,然后新建一个工程(工程类型为标准EXE),然后双击Form1窗体,进入代码(Code)输入框,在其中输入:
PrivateDeclareFunctionExitWindowsExLib"user32"(ByValuFlagsAsLong,ByValdwReserved
AsLong)AsLong
2.点击“工具箱”中的commandbutton(命令按钮)工具,即可在窗体Form1中加入一个命令按钮,然后将该按钮属性中的Caption值定义为“重新启动”。完成之后双击该按钮,进入代码(code)输入框输入以下代码:
PrivateSubCommand1_Click()
ExitWindowsEx&H43,0
EndSub
程序的执行
程序输入完成后,点击VB“运行”菜单中的“启动”或“全面编译”命令,然后点击“重新启动”按钮,即可重新启动计算机。
磁盘格式化
在Windows9X中,当用鼠标右键单击“我的电脑”中的“3.5软盘A”然后在出现的右键菜单中选择“格式化”选项,就将弹出标准的“磁盘格式化”窗口。下面我们来看看如何在应用程序中利用函数轻松调用Windows95标准的“磁盘格式化”窗口,实现对磁盘相应的操作功能。
程序的编写
1.与上例相同,首先运行VB,新建一个标准工程,然后利用“工具箱”在Form1窗体中加入一个命令按钮对象,将该命令按钮属性中的Caption值定义为“软盘格式化”。完成之后双击该按钮,在代码输入框中输入以下代码:
PrivateSubCommand1_Click()
CallFormatFloppy'调用FormatFloppy过程
EndSub
2.然后用鼠标右击窗体,选择右键菜单中的“添加/添加模块”选项,然后在出现的选择框中选择“模块”类型,接着在出现的模块代码输入框中加入以下代码:(注:模块是指一组声明的集合,其后为过程)
'通用声明
PublicConstWM_CLOSE=&H10
DeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsAny,ByVal
lpWindowNameAsAny)AsLong
DelareFunctionGetWindowsDirectoryLib"kernel32"Alias"GetWindowsDirectoryA"(ByVallpBuffer
AsString,ByValnSizeAsLong)AsLong
DeclareFunctionSetWindowPosLib"user32"(BvValhwndAsLongByValhWndInsertAfterAsLong,
ByValXAslong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong
DeclareFunctionGetDesktopWindowLib"user32"()AsLong
DeclareFunctionLockWindowUpdateLib"user32"(ByValhwndLockAsLong)AsLong
DeclareFunctionGetWindowRectLib"user32"(ByVayhwndAsLong,lpRectAsRECT)AsLong
DeclareSubSleepLib"kernel32"(ByValdwMillisecondsAsLong)
TypeRECT
LeftAsLong
TopAsLong
RightAsLong
BottomAsLong
EndType
TypePOINTAPI
XAsLong
yAsLong
EndType
ConstSWP_NOSIZE=&H1
ConstSWP_NOZORDER=&H4
'FormatFloppy()过程声明
PublicSubFormatFloppy()
DimsBufferAsString,WindirAsString,ProcsAsString,X
DimlResultAsLong
sBuffer=String$(255,0)
lResult=GetWindowsDirectory(sBuffer,Len(sBuffer))
Windir=Trim(sBuffer)
Procs=Left(Windir,lResult)&"\rundll32.exeshell32.dll,SHFormatDrive"
CallCenterDialog("Format-3?Floppy(A:)")
X=Shell(Procs,1)
CallCenterDialog("Format-3?Floppy(A:)")
k=LockWindowUpdate(0)
EndSub
'CenterDialog过程声明
PublicSubCenterDialog(WinTextAsString)
DoEvents
OnErrorResumeNext
DimD3AsLong
D3=LockWindowUpdate(GetDesktopWindow())
Dimwdth
Dimhght
DimScrwdth
DimScrhght
DimlpDlgRectAsRECT
DimlpdskrectAsRECT
DimhTaskBarAsLong
hTaskBar=FindWindow(0&,WinText)
CallGetWindowRect(hTaskBar,lpDlgRect)
wdth=lpDlgRect.Right-lpDlgRect.Left
hght=lpDlgRect.Bottom-lpDlgRect.Top
CallGetWindowRect(GetDesktopWindow(),lpdskrect)
Scrwdth=lpdskrect.Right-lpdskrect.Left
Scrhght=lpdskrect.Bottom-lpdskrect.Top
X=(Scrwdth-wdth)/2
y=(Scrhght-hght)/2
CallSetWindowPos(hTaskBar,0,X,y,0,0,SWP_NOZORDEROrSWP_NOSIZE)
DoEvents
EndSub
程序的执行
程序输入完成后,点击VB“运行”菜单中的“启动”或“全面编译”命令,点击“软盘格式化”按钮后选择要格式化的容量,即可对3.5英寸盘进行格式化操作。
调用版本信息框
在Windows程序中,点击“帮助”菜单中的“关于XXX”选项后,就会弹出该程序的版本信息框。其实,在
VB中,调用shellAbout函数不但可以实现标准的软件版本信息框,还可以随意更改其中的内容呢!
程序的编写
1.与前面类似,首先运行VB并新建一个标准工程,然后双击Form1窗口,在代码输入框中输入ShellAbout过
程代码:
PrivateDeclareFunctionShellAboutLib"shell32.dlI"Alias"ShellAboutA"(ByValhWndAsLong,ByValszAppAsString,ByValszOtherStuffAsString,ByValhIconAsLong)AsLong
其中ShellAbout声明如下:
HWnd设置窗口句柄,szApp设置窗口的“Caption”,szOtherStuff在“版权所有”和“使用权”之间的空白
处增加额外说明。
2.然后利用“工具箱”在Form1窗体中加入一个命令按钮对象,将该命令按钮属性中的Caption值定义为“版

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:AVI文件格式   下一篇:SendMessage函数巧应用

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号