您好,欢迎访问三七文档
API函数快速入门API函数简介作为一个编程初学者来说,API函数也许是一个时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇API入门教程的目的,就是要把API函数的来龙去脉告诉大家,破除对API函数的畏惧,使它成为我们编程的好助手。大家可能在许多书上看到过API的英文全称(ApplicationProgrammingInterface),WIN32API也就是MicrosoftWindows32位平台的应用程序编程接口。对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。这也是API函数使用的场合,所以我们对待API函数不必刻来研究每一个函数的用法,那也是不现实的(能用的到的API函数有几千个呢)。正如某位大虾所说:API不要去学,在需要的时候去查API帮助就足够了API函数在VB中的应用所谓API就是“应用程序接口”(ApplicationProgramingInterface),是一些用C语言编写,由操作系统自身调用的函数。WindowsAPI函数由许多“动态链接库”或DLL组成。在32位Windows中,核心的WindowsAPIDLL有如下一些: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)输入框,在其中输入:PrivateDeclareFunctionExitWindowsExLibuser32(ByValuFlagsAsLong,ByValdwReservedAsLong)AsLong2.点击“工具箱”中的commandbutton(命令按钮)工具,即可在窗体Form1中加入一个命令按钮,然后将该按钮属性中的Caption值定义为“重新启动”。完成之后双击该按钮,进入代码(code)输入框输入以下代码:PrivateSubCommand1_Click()ExitWindowsEx&H43,0EndSub程序的执行程序输入完成后,点击VB“运行”菜单中的“启动”或“全面编译”命令,然后点击“重新启动”按钮,即可重新启动计算机。磁盘格式化在Windows9X中,当用鼠标右键单击“我的电脑”中的“3.5软盘A”然后在出现的右键菜单中选择“格式化”选项,就将弹出标准的“磁盘格式化”窗口。下面我们来看看如何在应用程序中利用函数轻松调用Windows95标准的“磁盘格式化”窗口,实现对磁盘相应的操作功能。程序的编写1.与上例相同,首先运行VB,新建一个标准工程,然后利用“工具箱”在Form1窗体中加入一个命令按钮对象,将该命令按钮属性中的Caption值定义为“软盘格式化”。完成之后双击该按钮,在代码输入框中输入以下代码:PrivateSubCommand1_Click()CallFormatFloppy'调用FormatFloppy过程EndSub2.然后用鼠标右击窗体,选择右键菜单中的“添加/添加模块”选项,然后在出现的选择框中选择“模块”类型,接着在出现的模块代码输入框中加入以下代码:(注:模块是指一组声明的集合,其后为过程)'通用声明PublicConstWM_CLOSE=&H10DeclareFunctionFindWindowLibuser32AliasFindWindowA(ByVallpClassNameAsAny,ByVallpWindowNameAsAny)AsLongDelareFunctionGetWindowsDirectoryLibkernel32AliasGetWindowsDirectoryA(ByVallpBufferAsString,ByValnSizeAsLong)AsLongDeclareFunctionSetWindowPosLibuser32(BvValhwndAsLongByValhWndInsertAfterAsLong,ByValXAslong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLongDeclareFunctionGetDesktopWindowLibuser32()AsLongDeclareFunctionLockWindowUpdateLibuser32(ByValhwndLockAsLong)AsLongDeclareFunctionGetWindowRectLibuser32(ByVayhwndAsLong,lpRectAsRECT)AsLongDeclareSubSleepLibkernel32(ByValdwMillisecondsAsLong)TypeRECTLeftAsLongTopAsLongRightAsLongBottomAsLongEndTypeTypePOINTAPIXAsLongyAsLongEndTypeConstSWP_NOSIZE=&H1ConstSWP_NOZORDER=&H4'FormatFloppy()过程声明PublicSubFormatFloppy()DimsBufferAsString,WindirAsString,ProcsAsString,XDimlResultAsLongsBuffer=String$(255,0)lResult=GetWindowsDirectory(sBuffer,Len(sBuffer))Windir=Trim(sBuffer)Procs=Left(Windir,lResult)&\rundll32.exeshell32.dll,SHFormatDriveCallCenterDialog(Format-3?Floppy(A:))X=Shell(Procs,1)CallCenterDialog(Format-3?Floppy(A:))k=LockWindowUpdate(0)EndSub'CenterDialog过程声明PublicSubCenterDialog(WinTextAsString)DoEventsOnErrorResumeNextDimD3AsLongD3=LockWindowUpdate(GetDesktopWindow())Dimwdth%Dimhght%DimScrwdth%DimScrhght%DimlpDlgRectAsRECTDimlpdskrectAsRECTDimhTaskBarAsLonghTaskBar=FindWindow(0&,WinText)CallGetWindowRect(hTaskBar,lpDlgRect)wdth%=lpDlgRect.Right-lpDlgRect.Lefthght%=lpDlgRect.Bottom-lpDlgRect.TopCallGetWindowRect(GetDesktopWindow(),lpdskrect)Scrwdth%=lpdskrect.Right-lpdskrect.LeftScrhght%=lpdskrect.Bottom-lpdskrect.TopX%=(Scrwdth%-wdth%)/2y%=(Scrhght%-hght%)/2CallSetWindowPos(hTaskBar,0,X%,y%,0,0,SWP_NOZORDEROrSWP_NOSIZE)DoEventsEndSub程序的执行程序输入完成后,点击VB“运行”菜单中的“启动”或“全面编译”命令,点击“软盘格式化”按钮后选择要格式化的容量,即可对3.5英寸盘进行格式化操作。调用版本信息框在Windows程序中,点击“帮助”菜单中的“关于XXX”选项后,就会弹出该程序的版本信息框。其实,在VB中,调用shellAbout函数不但可以实现标准的软件版本信息框,还可以随意更改其中的内容呢!程序的编写1.与前面类似,首先运行VB并新建一个标准工程,然后双击Form1窗口,在代码输入框中输入ShellAbout过程代码:PrivateDeclareFunctionShellAboutLibshell32.dlIAliasShellAboutA(ByValhWndAsLong,ByValszAppAsString,ByValszOtherStuffAsString,ByValhIconAsLong)AsLong其中ShellAbout声明如下:HWnd设置窗口句柄,szApp设置窗口的“Caption”,szOtherStuff在“版权所有”和“使用权”之间的空白处增加额外说明。2.然后利用“工具箱”在Form1窗体中加入一个命令按钮对象,将该命令按钮属性中的Caption值定义为“版本信息框”。完成之后双击该按钮,在代码输入框输入以下代码:PrivateSubCommand1_Click()CallShellAbeut(hWnd,何发武天使工作室!,版本信息框&VbCrLf&上帝与你同在!阿弥陀佛!,0)EndSub程序的执行程序输入完成后,点击VB“运行”菜单中的“启动”或“全面编译”命令,点击“版本信息框”按钮,即可查看当前软件的版本信息。在Windows9X中,增加了一个全新的概念--“属性”,每个对象都拥有自己的“属性”,在“属性”窗口里是关于对象
本文标题:vb-API-全
链接地址:https://www.777doc.com/doc-6072589 .html