API函数在VB中的应用
所谓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函数巧应用 更多相关文章
|
推荐文章
精彩文章
|