API函数详解
Win32API函数大全使用详解
一、窗口函数(Window)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == =AdjustWindowRect函数功能:该函数依据所需客户矩形的大小,计算需要的窗日矩形的大小。
计算出的窗口矩形随后可以传递给CreateWindow函数,用于创建一个客户区所需大小的窗口。
函数原型:BOOL AdjustWindowRect(LPRECT lpRect ,DWORDdwStyle,BOOL bMENU);参数:lpRect:指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的坐标。
函数返回时,该结构容纳所需客户区域的窗口的左上角和右下角的坐标。
dwStyle:指定将被计算尺寸的窗口的窗口风格。
bMenu:指示窗口是否有菜单。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。
获取错误信息,参看GetLastError。
备注:客户矩形是指完全包含一个客户区域的最小矩形;窗日矩形是指完全包含一个窗口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:Windows NT:3.1以上版本:Windows:95以上版本:Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = = = = = = = = = = = = = = = = = = = = = = = = = = = = =AdjustWindowRectEX函数功能:该函数依据所需客户矩形大小,计算需要的窗口矩形的大小。
VB鼠标的API函数使用详解
VB鼠标的API函数使用详解鼠标是计算机中常用的输入设备之一,通过鼠标用户可以进行控制、操作等操作。
在使用VB编程时,我们可以通过API函数来实现鼠标的一些特定操作,如设置鼠标的位置、隐藏或显示鼠标指针等。
下面我们就来详细介绍一下VB中鼠标的API函数使用方法。
首先,我们需要在VB的代码窗口中声明API函数,这样我们才能在程序中使用这些函数。
在VB中,我们可以使用Declare语句来声明API函数,如下所示:```Private Declare Function 函数名 Lib "dll文件名" (参数列表)As 返回值类型```其中,函数名是API函数的名称,Lib是API函数所在的dll文件名,参数列表是API函数的参数列表,返回值类型是API函数的返回值类型。
1.设置鼠标的位置鼠标的位置可以通过API函数SetCursorPos来设置,代码如下:```Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As LongSub SetMousePosition(ByVal X As Long, ByVal Y As Long)SetCursorPos X, YEnd Sub```在上述代码中,我们使用Declare语句声明了SetCursorPos函数,该函数位于user32.dll文件中。
然后我们定义了一个名为SetMousePosition的子过程,通过调用SetCursorPos函数来设置鼠标的位置。
2.隐藏或显示鼠标指针我们可以使用API函数ShowCursor来隐藏或显示鼠标指针,代码如下:```Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As LongSub HideCursorShowCursor FalseEnd SubSub ShowCursorShowCursor TrueEnd Sub```在上述代码中,我们使用Declare语句声明了ShowCursor函数,该函数位于user32.dll文件中。
函数api 介绍模板
函数api 介绍模板
函数 API 是一种编程接口,允许开发人员使用预定义的函数
来实现特定的功能。
它提供了一组函数、方法或类的集合,开发者可以直接调用这些函数来执行特定的操作,而无需了解其实现细节。
函数API 提供了一种简单、灵活和可重用的方式来编写代码。
通过使用函数 API,开发人员可以将代码逻辑模块化,并通过调用函数来完成特定的任务。
这样做可以提高代码的可读性、可维护性和可测试性。
函数 API 通常是文档化的,这意味着开发者可以查看每个函
数的用法、参数和返回值。
这样可以帮助开发者快速上手并正确地使用函数。
函数 API 还可以与其他软件组件进行集成和交互。
例如,开
发人员可以使用函数 API 调用操作系统的功能、访问数据库
或与其他服务进行通信。
总结来说,函数 API 是一种编程接口,为开发人员提供了预
定义的函数集合,用于执行特定的操作。
它提供了一种简单、灵活和可重用的方式来编写代码,并与其他软件组件进行集成和交互。
api函数的使用
api函数的使用
API(Application Programming Interface)函数是由操作系统、应用程序或其他软件提供的一组预定义函数,用于开发人员在编程时调用以实现特定的功能或与其他软件进行交互。
以下是一般使用 API 函数的步骤:
1. 阅读文档:首先,你需要阅读相关 API 的文档,了解其功能、参数、返回值以及使用方法。
文档通常会提供详细的说明和示例,帮助你理解如何使用该 API。
2. 导入 API 库:根据 API 的要求,你可能需要导入相应的库或头文件。
这将使你的代码能够访问和使用 API 函数。
3. 调用 API 函数:在代码中,使用适当的语法调用 API 函数,并传入所需的参数。
确保传递的参数类型与 API 函数期望的类型相匹配。
4. 处理返回值:API 函数可能会返回一个值,你需要根据文档说明处理该返回值。
如果返回值表示错误或异常,你可能需要进行相应的错误处理。
5. 遵循 API 规范:在使用 API 函数时,务必遵循其规范和限制。
这包括了解可用的操作、数据类型、错误处理方式等。
6. 测试和调试:在开发过程中,进行充分的测试和调试,确保 API 函数被正确调用并返回预期的结果。
如果遇到问题,可以参考文档、查找示例或向相关社区寻求支持。
需要注意的是,具体的 API 使用步骤可能因 API 的性质、编程语言和平台而有所不同。
因此,在使用特定 API 时,请务必参考相应的文档和示例,以确保正确使用 API 函数。
vb api函数使用手册
vb api函数使用手册一、简介VB(Visual Basic)是一种基于事件驱动的编程语言,广泛应用于Windows操作系统上的应用程序开发。
VB提供了强大的API (Application Programming Interface)函数库,可以用于访问操作系统的各种功能和资源。
本文将介绍一些常用的VB API函数及其使用方法。
二、API函数分类VB API函数可以分为以下几类:1.窗口和控件操作这类API函数可以用于创建、操纵和管理窗口和控件,以及处理窗口消息和事件。
- CreateWindowEx:创建一个具有扩展样式的窗口。
- SetWindowText:设置窗口标题文字。
- ShowWindow:显示或隐藏一个窗口。
- SendMessage:向窗口发送消息。
- GetWindowRect:获取窗口的客户区矩形。
2.文件和目录操作这类API函数可以用于访问、读写和管理文件和目录。
- CreateFile:创建或打开一个文件。
- ReadFile:从文件读取数据。
- WriteFile:将数据写入到文件。
- FindFirstFile/FindNextFile:查找文件。
- CreateDirectory:创建一个目录。
3.系统和进程操作这类API函数可以用于访问和管理操作系统和进程的信息。
- GetTickCount:获取系统启动后的毫秒数。
- GetSystemInfo:获取系统的硬件和配置信息。
- CreateProcess:创建一个新的进程。
- TerminateProcess:终止一个进程。
- EnumProcesses:枚举所有正在运行的进程。
4.网络通信这类API函数可以用于实现网络通信功能,如创建、连接和通信等。
- socket:创建一个套接字用于网络通信。
- bind:将套接字与一个本地地址绑定。
- connect:连接到一个远程地址。
- send/recv:发送和接收数据。
VB6中API函数的使用
VB6中API函数的使用
一、什么是API函数
API(应用程序编程接口)函数是操作系统提供的一组函数,提供给
其它程序调用。
API允许软件开发者在调用接口时要求操作系统完成项工作。
二、Visual Basic6中使用API函数
Visual Basic6中使用API函数的方法有三种,它们分别是:
1.使用VBApi模块
VBApi模块可以帮助你实现API函数的调用。
它可以用在任何类型的
应用程序中,并且它可以用来调用任何的API函数,只需要在Visual Basic6中添加一个VBApi模块即可,添加方式如下:
2.使用Declare语句
Declare定义是用来定义Visual Basic程序和外部函数或DLL文件
中的特殊函数的语句。
[Public , Private][Static] Declare FunctionName AliasAliasname Lib"PathName"[(AsReturnType]
3.使用DLL
使用DLL是比使用VBApi模块和Declare语句更高级的API函数调用
方式,它可以大大简化调用过程。
在使用DLL之前,需要先配置DLL文件,具体步骤如下:
(1)将需要调用的DLL文件添加到Visual Basic的References中,这样Visual Basic就可以调用该DLL文件中的函数。
(2)添加Win32API模块,使用此模块可定义API函数的参数。
第13章API函数简介精品PPT课件
29.10.2020
清华大学出版社
3
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA"_ (ByVal hwnd As Long, ByVal lpString As String) As Long Private Sub Command1_Click()
29.10.2020
清华大学出版社
4
13.1.2 API声明
若要使用API函数,则必须在先把API函数的出处、函数名称、 参数、传回值等声明在表单的"一般"区块或是一般模块(.bas文件) 中。 上例中API函数声明的方法与步骤如下: 上例中用的API函数名为SetWindowText 第 一 步 : 新 建 工 程 , 并 在 窗 体 Forml 中 添 加 一 命 令 按 钮 Command1,Forml 与Command1的Caption属性分别设为“API示 例”、“开始”。如下图 所示。
第 六 步 在 【 可 用 项 】 中 选 中 需 用 API 函 数 。 本 例 为 : SetWindowText,在【声明范围】中选择【私有】,单击【添加】 按钮。则在【选定项】中出现相应API函数声明语句。如图13-3 所示。
第七步 单击【复制】按钮,可将相应的声明语句复制到【剪 贴板】中。
29.10.2020
清华大学出版社
9
运行程序。单击command1,观察窗体标题栏的变化。 2.说明: (1) SetwindowText函数有二个参数。hwnd确定要修改的标题 栏窗口(Form1. hwnd)也称为窗口的句柄。参数lpstring,用于确 定标题栏的内容。
API函数详解
API函数详解摘要:什么是API你不学API,你大概将停留在初级水平,无法往上攀登API文本游览器什么时候使用什么函数,什么时候使用什么结构类型,什么时候使用什么常数一些API函数集正文:API函数详解(转载自红尘如烟)标签:首先,有必要向大家讲一讲,什么是API。
所谓API本来是为C和C++程序员写的。
API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。
用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Wi ndows NT操作系统上的应用程序。
可以说,如果你曾经学过VC,那么API对你来说不是什么问题。
但是如果你没有学过VC,或者你对Windows95的结构体系不熟悉,那么可以说,学习API将是一件很辛苦的事情。
如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL的文件。
一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。
我们能都掌握它嘛?回答是否定的∶不可能掌握。
但实际上,我们真的没必要都掌握,只要重点掌握Wi ndos系统本身自带的API函数就可以了。
但,在其中还应当抛开掉同VB本身自有的函数重复的函数。
如,VB的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。
对A PI来讲也有对应的函数GetFileAttributes和SetFileAttributes,性能都差不多。
如此地一算,剩下来的也就5、600个。
是的,也不少。
但,我可以敢跟你说,只要你熟悉地掌握100个,那么你的编程水平比现在高出至少要两倍。
尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近WINDOWS。
如果你学会了API,首要的收获便是对W INDOWS体系结构的认识。
这个收获是来自不易的。
如果你不依靠API会怎么样?我可以跟你说,绝大多是高级编程书本(当然这不是书的名程叫高级而高级的,而是在一开始的《本书内容》中指明《本书的阅读对象是具有一定V B基础的读者》的那些书),首先提的问题一般大都是从API开始。
串口API函数介绍
串口API函数介绍
串口通信是一种常见的数据传输方式,它能够在计算机与外部设备之间进行数据传输。
在实际应用中,我们通常会使用串口API函数来进行串口的配置、数据的读写等操作。
本文将介绍一些常用的串口API函数。
1. CreateFile函数:该函数用于创建一个串口设备的句柄,并返回该句柄的值。
在使用其他串口API函数之前,需要先调用该函数进行串口设备的打开。
5. ReadFile函数和WriteFile函数:这两个函数用于进行串口数据的读写操作。
通过调用ReadFile函数,可以从串口设备的输入缓冲区中读取数据;而通过调用WriteFile函数,则可以向串口设备的输出缓冲区中写入数据。
6. CloseHandle函数:该函数用于关闭串口设备句柄。
在使用完串口设备后,需要调用该函数来关闭串口设备。
以上介绍的是一些常用的串口API函数,通过调用这些函数,我们可以实现对串口设备的配置、数据的读写等操作。
当然,在使用这些函数之前,我们也需要首先了解一些串口的基本原理,如波特率、数据位、停止位等参数的含义,以便正确地配置和使用串口设备。
另外,需要注意的是,在使用串口API函数进行串口通信时,还需要注意一些细节问题。
比如,在进行数据读取时,需要考虑数据的完整性和正确性;在进行数据写入时,需要确保输出缓冲区有足够的空间;在设置超时时间时,需要根据实际情况进行合理的配置等等。
总之,串口API函数是进行串口通信的重要工具,通过合理地使用这些函数,我们可以实现与外部设备的可靠数据传输,为我们的应用程序带来更多的功能和灵活性。
VB鼠标的API函数使用详解
VB鼠标的API函数使用详解1. MouseDown(Button, Shift, X, Y)该函数用于模拟鼠标按下按钮的动作,Button参数可以是常量vbLeftButton、vbRightButton或vbMiddleButton,用于指示要模拟按下的鼠标键;Shift参数可以是常量vbShiftMask、vbCtrlMask或vbAltMask,表示按下Shift、Ctrl、Alt键的状态,如果Shift参数没有指定,则默认为不按下Shift、Ctrl、Alt键;X参数表示鼠标按下点的横坐标,Y参数表示鼠标按下点的纵坐标。
2. MouseUp(Button, Shift, X, Y)该函数用于模拟鼠标抬起按钮的动作,Button参数可以是常量vbLeftButton、vbRightButton或vbMiddleButton,用于指示要模拟抬起的鼠标键;Shift参数可以是常量vbShiftMask、vbCtrlMask或vbAltMask,表示抬起Shift、Ctrl、Alt键的状态,如果Shift参数没有指定,则默认为不抬起Shift、Ctrl、Alt键;X参数表示鼠标抬起点的横坐标,Y参数表示鼠标抬起点的纵坐标。
3. MouseMove(X, Y)该函数用于模拟鼠标移动的动作,X参数表示鼠标移动目标点的横坐标,Y参数表示鼠标移动目标点的纵坐标。
4. MouseWheel(WheelClicks)该函数用于模拟鼠标滚轮操作,WheelClicks参数表示要模拟的滚轮点击数,每次滚轮转动一次,WheelClicks参数的值就会增加或减少一;如果是向前滚动,则WheelClicks参数值应该大于0;如果是向后滚动,则WheelClicks参数值应该小于0。
5. DragPicture(Picture, X1, Y1, X2, Y2, Mode)该函数用于拖拽图形,Picture参数表示拖拽对象。
API函数大全
API函数大全1. API之网络函数:WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource 枚举网络资源WNetGetConnection 获取本地或已连接的一个资源的网络名称WNetGetLastError 获取网络错误的扩展错误信息WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser 获取一个网络资源用以连接的名字WNetOpenEnum 启动对网络资源进行枚举的过程2. API之消息函数:BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime 取得消息队列中上一条消息处理完毕时的时间PostMessage 将一条消息投递到指定窗口的消息队列PostThreadMessage 将一条消息投递给应用程序RegisterWindowMessage 获取分配给一个字串标识符的消息编号ReplyMessage 答复一个消息SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback 将一条消息发给窗口SendMessageTimeout 向窗口发送一条消息SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数CloseHandle 关闭一个内核对象。
API函数大全
1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource 枚举网络资源WNetGetConnection 获取本地或已连接的一个资源的网络名称WNetGetLastError 获取网络错误的扩展错误信息WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser 获取一个网络资源用以连接的名字WNetOpenEnum 启动对网络资源进行枚举的过程2. API之消息函数BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime 取得消息队列中上一条消息处理完毕时的时间PostMessage 将一条消息投递到指定窗口的消息队列PostThreadMessage 将一条消息投递给应用程序RegisterWindowMessage 获取分配给一个字串标识符的消息编号ReplyMessage 答复一个消息SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback 将一条消息发给窗口SendMessageTimeout 向窗口发送一条消息SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数CloseHandle 关闭一个内核对象。
API之SetWindowLong函数详解
指定该替换值。
返回值 若函数成功,返回值是指定的 32 位整数的原值;否则,返回值为 0。使用 GetLastError 函数可获取补充的错误信息。
注释 若使用 SetWindowLong 函数和 GWL_WNDPROC 索引替换窗口过程,则给定的窗口过程必须遵 循 WindowProc 回调函数的说明中指定的准则。 使用 GWL_WNDPROC 索引调用 SetWindowLong 函数可创建该窗口类的子类(窗口类用来创建窗 口)。应用程序不得用另一个过程的窗口产生子类。 使用 RegisterClass 函数,并将 WNDCLASS 结构的 cbWndExtra 成员指定为一个非零值,便可 保留附加窗口内存。 不得将 SetWindowLong 与 GWL_HWNDPARENT 索引一起使用来改变一个子窗口的父窗口。要 改变子窗口的父窗口,应使用 SetParent 函数。
Private Const WS_SYSMENU = &H80000
' 带系统菜单的窗口
Private Const WS_CLIPSIBLINGS = &H4000000 '不重绘层叠子窗口
Private Const WS_CLIPCHILDREN = &H2000000 '绘图时排子窗口区域
Private Const WS_OVERLAPPED = &H0&
'创建一个在标题栏有控件菜单框的窗体。只能和有标题栏的窗体一
Const WS_THICKFRAME = &H40000 '创建一个有厚边框的 Window,使其可以改变大小。
Const WS_GROUP = &H20000 '指定一个用户可以用方向键从一个控件移到另一个控件的控件组的
DELPHI中使用API函数详解
DELPHI中使用API函数详解在Delphi中,可以使用API函数来实现一些特定的功能或操作,这些API函数可以直接调用Windows操作系统提供的功能。
本文将详细介绍如何在Delphi中使用API函数。
在Delphi中,可以使用以下方法来调用API函数:1. 声明API函数:首先需要在Delphi中声明API函数,可以在程序中的任何地方声明。
声明API函数的语法如下:```delphifunction 函数名(参数列表): 返回值类型; stdcall; external '库名.dll';```其中,函数名是API函数的名称,参数列表包含了API函数需要接收的参数,返回值类型是API函数的返回值类型,stdcall表示使用标准调用规范,external后面的字符串表示API函数所在的动态链接库文件。
例如,要声明一个在user32.dll库中的MessageBox函数,可以写成以下代码:```delphifunction MessageBox(hWnd: HWND; lpText: LPCWSTR; lpCaption: LPCWSTR; uType: UINT): Integer; stdcall; external 'user32.dll';```2.调用API函数:声明完API函数后,就可以在程序中直接调用了。
调用API函数的方法与调用普通函数类似,只需传递相应的参数即可。
例如,使用之前声明的MessageBox函数来显示一个消息框,可以写成以下代码:```delphibeginMessageBox(0, 'Hello World', '提示', MB_OK);end;```上述代码中,第一个参数0表示消息框的父窗口句柄,'Hello World'表示要显示的消息文本,'提示'表示消息框的标题,MB_OK表示消息框的样式。
API相关函数
在指定项下创建新项的更复杂的方式
RegDeleteKeyA
删除现有项下方一个指定的子项
RegDeleteValueA
删除指定项下方的一个值
RegQueryValueA
猎取一个项的设置值
RegQueryValueExA
猎取一个项的设置值
RegSetValueA
设置指定项或子项的值
与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
SetFilePointer
在一个文件中设置当前的读写位置
SetEndOfFile
针对一个打开的文件,将当前文件位置设为文件末尾
CloseHandle
关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
_lcreat
从内存模板建立一模态对话窗
EndDialog
终止一模态对话窗
MessageBox
显示一信息对话框
MessageBoxEx
显示一信息对话框
MessageBoxIndirect
显示一定制信息对话框
GetDlgItemInt
得指定输入框整数值
GetDlgItemText
得指定输入框输入字符串
GetDlgItemTextA
bpint 31 if ah==3fh (DOS)
bpint 21 if ah==3dh (DOS)
bpx ReadFile
bpx WriteFile
bpx CreateFile
bpx SetFilePointer
bpx GetSystemDirectory
INI初始化文件相关
bpx GetPrivateProfileString
vb api函数使用手册
vb api函数使用手册VB(Visual Basic)是一种易于学习和使用的编程语言,广泛应用于Windows操作系统的开发中。
在VB中,API(应用程序编程接口)函数提供了访问操作系统底层功能的途径。
本手册旨在帮助开发者熟悉和正确使用VB中的API函数。
一、什么是API函数API(Application Programming Interface)函数是一组操作系统或应用程序提供的功能接口。
通过调用API函数,开发者可以访问操作系统底层功能,实现更为高级和复杂的功能需求。
VB中的API函数主要用于实现与操作系统进行交互,如读取系统信息、控制系统行为等。
二、API函数的声明和使用VB中使用API函数需要进行以下四个步骤:声明、加载、调用和释放。
1.声明在VB代码中声明API函数,需要使用Declare语句。
具体的语法如下:Declare Function 函数名 Lib "库名" Alias "函数别名" (参数列表) As 返回值类型其中,- 函数名表示API函数的名称;- 库名表示包含API函数的动态链接库(DLL)文件名;- 函数别名是可选的,用于给API函数指定一个不同于其在DLL中定义的名称;- 参数列表表示API函数的参数,多个参数之间使用逗号分隔;- 返回值类型表示API函数的返回值类型。
2.加载在VB代码中加载API函数所在的DLL,需要使用LoadLibrary函数。
具体的语法如下:Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long其中,- LoadLibrary是一个Windows API函数,用于加载指定的DLL文件;- "kernel32"表示包含LoadLibrary函数的动态链接库文件;- "LoadLibraryA"是LoadLibrary函数的别名,其中A表示使用ANSI字符集。
windowsAPI函数中文详解
windowsAPI函数中⽂详解WindowsAPI函数中⽂详解V1.0⽬录WindowsAPI函数中⽂详解V1.0 ----------------------------------------------------------------------------- 1 VC API常⽤函数简单例⼦⼤全 ---------------------------------------------------------------------------- 6第⼀个:FindWindow根据窗⼝类名或窗⼝标题名来获得窗⼝的句柄,该函数返回窗⼝的句柄------------------------------------------- 6第⼆个:SendMessage根据窗⼝句柄发送⼀个消息给窗⼝6第三个:GetCursorPos获取⿏标当前位置(屏幕) -------- 8第四个:WindowFromPoint根据坐标点获得对应的窗⼝句柄 -------------------------------------------------------------------------------- 9第五个MoveWindow根据窗⼝句柄移动窗⼝,改变窗⼝⼤⼩ ------------------------------------------------------------------------------- 10第六个ShowWindow设置窗⼝显⽰状态,如隐藏,最⼤化,最⼩化------------------------------------------------------------------------- 10第七个SetCursorPos设置⿏标的位置、把⿏标移动到指定的位置------------------------------------------------------------------------- 11第⼋个CopyFile复制⼀个⽂件-------------------------------------- 11第九个DeleteFile删除⼀个⽂件----------------------------------- 11第⼗个CreateDirectory创建⼀个⽂件夹(⽬录) --------- 11第⼗⼀个:GetClientRect获得窗⼝⼤⼩---------------------- 12第⼗⼆个:GetCWindowRect获得窗⼝⼤⼩(相对屏幕)12第⼗三个FindFirstFile寻找⽂件以及获得⽂件的信息------ 13第⼗四个FindNextFile寻找⽂件---------------------------------- 13第⼗五个MoveFile移动⽂件 ---------------------------------------- 14第⼗六个GetClassName根据窗⼝句柄获得窗⼝类名 ----- 14第⼗七个SetFileAttributes设置⽂件属性-------------------- 14第⼗⼋个ShellExecute运⾏⼀个程序函数定义:ShellExecute(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd); 第⼀个参数hwnd是⽗窗⼝的句柄,可以为NULL,第⼆个参数lpOperation表⽰⾏为,第三个参数lpFile是程序的路径名,第四个参数lpParameters是给所打开程序的参数,可以为NULL,第五个参数lpDirectory可以为NULL,第六个参数nShowCmd跟ShowWindow函数的第⼆个参数⼀样,作⽤也⼀样,如果打开的程序有窗⼝的话,这个参数就指明了窗⼝如何显⽰. 例如打开⼀个记事本:------------------- 16 第⼗九个PlaySound播放⼀个WAV⽂件--------------------- 16 第⼆⼗个GetModuleFileName根据模块导⼊表获程序的完整路径------------------------------------------------------------------------- 17 第⼆⼗⼀个CreateWindow创建⼀个窗⼝ -------------------- 17 第⼆⼗⼆个GetMessage获取窗⼝消息 ------------------------ 23 第⼆⼗三个RegisterClass注册窗⼝类,参照CreateWindow--------------------------------------------------------- 23 第⼆⼗四个UpdateWindow参照CreateWindow------ 23 第⼆⼗五个DispatchMessage参照CreateWindow-- 23 第⼆⼗六个LoadCursorFromFile从磁盘加载⼀个光标⽂件,函数返回该光标句柄------------------------------------------------ 23 第⼆⼗七个CreateSolidBrush创建⼀个画刷,函数返回画刷句柄------------------------------------------------------------------------- 23 第⼆⼗⼋个LoadImage装载位图、图标、光标函数-------- 24 第⼆⼗九个GetDC根据窗⼝句柄获取设备上下⽂(DC)返回DC句柄 ---------------------------------------------------------------------- 26 第三⼗个Rectnagle在窗⼝中画⼀个矩形 ---------------------- 26 第三⼗个CreateToolhelp32Snapshot给当前进程拍⼀个照 ------------------------------------------------------------------------------- 27 第三⼗⼀个Process32First根据CreateToolhelp32Snapshot函数返回的句柄获取进程信息------------------------------------------------ 27 第三⼗⼆个OpenProcess根据进程ID号获得进程句柄,句柄通过函数返回------------------------------------------------------------------- 28 第三⼗三个TerminateProcess结束⼀个进程(需进程句柄做参数)---------------------------------------------------------------------- 28 第三⼗四个CreatePen创建⼀个画笔(返回画笔句柄) --- 29第三⼗五个CreateSolidBrush创建⼀个画刷---------------- 29 第三⼗六个SelectObject把GDI对象选⼊相应的DC中 29 第三⼗七个 ReadProcessMemory根据进程句柄读取相应的⼀段内存(读其它进程⾥的内存) -------------------------------- 31 第三⼗⼋个WriteProcessMemory根据进程句柄写⼊相应的⼀段内存(写⼊其它进程⾥的内存)----------------------------- 32 第三⼗九个CreateThread创建⼀个线程(多线程)------- 33 第四⼗个GetCurrentProcessId获得当前进程ID ------- 35 第四⼗⼀个CreateCompatibleDC创建⼀个兼容的内存设备上下⽂(DC)----------------------------------------------------------- 35 第四⼗⼆个GetObject获取⼀个对象信息(如位图,图标,光标)------------------------------------------------------------------------- 35 第四⼗三个BitBlt在窗⼝输出⼀个位图 --------------------------- 35第四⼗四个GetWindowText根据窗⼝句柄获得窗⼝标题名37 第四⼗五个SetWindowText根据窗⼝句柄设置窗⼝标题名38 第四⼗六个GetCurrentProcess获得当前线程句柄------- 38第四⼗七个OpenProcessToken获得⼀个进程的访问令牌句柄 ---------------------------------------------------------------------------- 38 第四⼗七个LookupPrivilegeValue函数查看对应系统权限的特权值,返回信息到⼀个LUID结构体⾥上⾯讲过了,进程有权限⼀说,那么⼤家也能猜到,进程权限的信息也⼀定存储在⼀个结构体⾥,这个结构体描述了进程权限相关的⼀些信息。
VB6中API函数的使用
VB6中API函数的使用在VB6中,可以通过API函数来调用Windows操作系统提供的一些功能或特性。
这些API函数通常是由用户编写的DLL(动态链接库)文件中提供的。
下面将介绍API函数的使用方法,并提供一些常用的API函数示例。
1.声明API函数:在VB6中,可以使用Declare关键字来声明API函数的原型。
声明的语法为:```Declare Function 函数名 Lib "库名称" ([参数列表]) As 返回值类型```其中,函数名指定API函数的名称,Lib指定DLL文件的名称,参数列表和返回值类型是API函数的参数和返回值的说明。
2.API函数的使用:要使用API函数,首先需要加载相应的DLL文件。
可以使用LoadLibrary函数来加载DLL文件,并返回一个模块的句柄。
然后使用GetProcAddress函数来获取API函数的指针,然后可以使用函数指针来调用API函数。
最后,使用FreeLibrary函数释放加载的DLL文件。
下面是示例代码:```vb'声明API函数的原型Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As String, _ByVal lpCaption As String, ByVal uType As Long) As LongSub ShowMessageBoxDim hUser32 As LongDim pMessageBox As Long'加载user32.dllhUser32 = LoadLibrary("user32.dll")' 获取MessageBoxA函数的指针pMessageBox = GetProcAddress(hUser32, "MessageBoxA")' 使用函数指针调用MessageBoxA函数Call DWORD(pMessageBox)(0, "Hello World!", "Message", vbInformation)'释放user32.dllFreeLibrary hUser32End Sub```上述代码示例使用了user32.dll中的MessageBoxA函数来显示一个消息框。
VB_API_函数教程
VB_API_函数教程VB是一种面向对象的编程语言,它支持使用API函数来完成各种任务。
API函数是由操作系统提供的函数,可以让开发人员访问底层功能。
在VB中,我们可以使用API函数来扩展程序的功能,例如访问文件系统、网络连接、窗口管理等。
本教程将介绍VB中常用的API函数以及如何使用它们。
一、API函数的声明在VB中使用API函数,首先需要声明该函数。
声明函数的方法如下:Declare Function functionName Lib "libraryName" (parameterList) As returnType其中,functionName是函数的名称,libraryName是包含API函数的动态链接库的名称。
parameterList是函数的参数列表,returnType是函数的返回类型。
例如,要声明一个名为MessageBox的API函数,可以使用以下代码:Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hWnd As IntPtr, ByVal text As String, ByVal caption As String, ByVal type As Integer) As Integer在上述代码中,函数名为MessageBox,函数库为user32.dll,函数别名为MessageBoxA,参数列表包含hWnd、text、caption和type四个参数,返回值为整数类型。
二、使用API函数在声明好API函数之后,可以使用它来完成相应的任务。
使用API函数的方法如下:returnValue = functionName(argumentList)其中,functionName是API函数的名称,argumentList是函数的参数列表,returnValue是函数的返回值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
API函数详解摘要:什么是API你不学API,你大概将停留在初级水平,无法往上攀登API文本游览器什么时候使用什么函数,什么时候使用什么结构类型,什么时候使用什么常数一些API函数集正文:API函数详解(转载自红尘如烟)标签:首先,有必要向大家讲一讲,什么是API。
所谓API本来是为C和C++程序员写的。
API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。
用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Wi ndows NT操作系统上的应用程序。
可以说,如果你曾经学过VC,那么API对你来说不是什么问题。
但是如果你没有学过VC,或者你对Windows95的结构体系不熟悉,那么可以说,学习API将是一件很辛苦的事情。
如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL的文件。
一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。
我们能都掌握它嘛?回答是否定的∶不可能掌握。
但实际上,我们真的没必要都掌握,只要重点掌握Wi ndos系统本身自带的API函数就可以了。
但,在其中还应当抛开掉同VB本身自有的函数重复的函数。
如,VB的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。
对A PI来讲也有对应的函数GetFileAttributes和SetFileAttributes,性能都差不多。
如此地一算,剩下来的也就5、600个。
是的,也不少。
但,我可以敢跟你说,只要你熟悉地掌握100个,那么你的编程水平比现在高出至少要两倍。
尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近WINDOWS。
如果你学会了API,首要的收获便是对W INDOWS体系结构的认识。
这个收获是来自不易的。
如果你不依靠API会怎么样?我可以跟你说,绝大多是高级编程书本(当然这不是书的名程叫高级而高级的,而是在一开始的《本书内容》中指明《本书的阅读对象是具有一定V B基础的读者》的那些书),首先提的问题一般大都是从API开始。
因此可以说,你不学A PI,你大概将停留在初级水平,无法往上攀登。
唯一的途径也许就是向别人求救∶我快死了,快来救救我呀,这个怎么办,那个怎么办?烦不烦呢?当然,现在网上好人太多(包括我在内,嘻嘻),但,你应当明白,通过此途径,你的手中出不了好的作品。
这是因为缺乏这些知识你的脑子里根本行不成一种总体的设计构思。
API文本游览器很多API函数都是很长很长的。
想看什么样子吗?如下就是作为例子的API DdeClien tTransaction函数∶Declare Function DdeClientTransaction Lib "user32" (pData As Byte, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wF mt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As Long哇!这么长?如果你从来没有接触过API,我想你肯定被吓住了。
你也许考虑,该不该继续学下去。
不过不要担心,幸运的是Microsoft的设计家们为我们提供了有用的工具,这便是API文本查看器。
通过API文本查看器,我们可以方便地查找程序所需要的函数声明、结构类型和常数,然后将它复制到剪贴板,最后再粘贴到VB程序的代码段中。
在大多数情况下,只要我们确定了程序所需要的函数、结构和常数这三个方面后,就可以通过对API文本游览器的以上操作将他们加入到程序段中,从而程序中可以使用这些函数了。
这些是学习API最基本的常识问题,它远远占不到API的庞大的体系内容。
今后我们把精力浪费(这绝不是浪费)在哪里呢?那就是∶什么时候使用什么函数,什么时候使用什么结构类型,什么时候使用什么常数。
API函数声明让我们回想一下。
在VB中,如何声明函数呢?我想,如果你正在看此文,那么你绝对能够回答得出这个问题。
以下便是你应该很熟悉的函数声明∶Function SetFocus (ByVal hwnd As Long) As Long即,这行代码定义了名为SetFocus的函数,此函数具有一个Long型数据类型的参数,并按值传递(ByVal),函数执行后将返回一个Long型数据。
API函数的声明也很类似,如,API中的SetFocus 函数是这样写的∶Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As L ong) As Long有点复杂了一些。
是的,是复杂了点。
但我可以告诉你,除了这些多出来的部分,其他部分还是和你以前学到的东西是一样的。
函数在程序中的调用也是一样。
如:Dim dl As Longdl&=SetFoucs(Form1.Hwnd)它不象你自己写的程序那样能够看到里面的运行机理,也不像VB自带的函数那样,能够从VB的联机帮助中查到其用法。
唯一的方法就是去学、查VB以外的资料。
Declare 语句用于在模块级别中声明对动态链接库(DLL) 中外部过程的引用。
对此,你只要记住任何API函数声明都必须写这个语句就可以了。
Iib 指明包含所声明过程或函数的动态链接库或代码资源。
也就是说,它说明的是,函数或过程从何而来的问题。
如在上例中,SetFocus Lib "user32"说明函数SetFocus 来自user32.dll文件。
主要的dll动态连接库文件有∶user32.dll Windows管理。
生成和管理应用程序的用户接口。
GDI32.dll 图形设备接口。
产生Windows设备的图形输出Kernel32.dll 系统服务。
访问操作系统的计算机资源。
注意,当DLL文件不在Windows或System文件夹中的时候,必须在函数中说明其出处(路径)。
如,SetFocus Lib "c:\Mydll\user32"函数声明中的Alias 是可选的。
表示将被调用的过程在动态链接库(DLL) 中还有另外的名称(别名)。
如,Alias "SetFocus" ,说明SetFocus函数在User32.dll中的另外一个名称是,SetFocus。
怎么两个名都一样呢?当然,也可以是不同的。
在很多情况下,Alias说明的函数名,即别名最后一个字符经常是字符A,如SetWindowsText函数的另一个名称是Set WindowsTextA,表示为Alias "SetWindowsTextA"。
这个A只不过是设计家们的习惯的命名约定,表示函数属于ANSI版本。
那么,别名究竟有什么用途呢?从理论上讲,别名提供了用另一个名子调用API的函数方法。
如果你指明了别名,那么尽管我们按Declare语句后面的函数来调用该函数,但在函数的实际调用上是以别名作为首要选择的。
如,以下两个函数(Function,ABCD)声明都是有效的,他们调用的是同一个SetFocus函数∶Declare Function SetFocus Lib "user32" "SetFocus" (ByVal hwnd As Long) As LongDeclare ABCD SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long需要注意的是,选用Alias的时候,应注意别名的大小写;如果不选用Alias 时的时候,函数名必须注意大小写,而且不能改动。
当然,在很多情况下,由于函数声明是直接从AP I文本游览器中拷贝过来的,所以这种错误的发生机会是很少的,但您有必要知道这一点。
最后提醒你一句,API声明(包括结构、常数)必须放在窗体或模块的"通用(General Decl arations)段。
数据类型与"类型安全"API函数中使用的数据类型基本上和VB中的一样。
但作为WIN32的API函数中,不存在Integer数据类型。
另外一点是在API函数中看不到Boolean数据类型。
Variant 数据类型在API函数中是以Any的形式出现,如Data As Any。
尽管其含义是允许任意参数类型作为一个该API函数的参数传递,但这样做存在一定的缺点。
其原因是,这将会使得对目标参数的所有类型检查都会被关闭。
这自然会给各种类型的参数调用带来了产生错误的机会。
为了强制执行严格的类型检查,并避免上面提到的问题,一个办法是在函数里使用上面提到到Alias技术。
如对API函数GetDIBits 可进行另外一种声明方法。
如下∶GetDIBits函数的原型∶Public Declare Function GetDIBits Lib "gdi32" Alias "GetDIBits" (ByVal aHD C As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNu mScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Lo ng) As LongGetDIBits函数的改型∶Public Declare Function GetDIBitsLong Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Long, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long通过本课程前面所学到的知识,我们已经可以得知原型GetDIBits函数也好,改型GetDIBitsLong函数也好,实际将调用的都是Alias所指定的GetDIBits原函数。
但你应当看到,两者的区别在于,我们在改型的函数中强制指定lpBits参数为Long形。