常用API函数.doc_第1页
常用API函数.doc_第2页
常用API函数.doc_第3页
常用API函数.doc_第4页
常用API函数.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WIN32常用API函数简介什么是API,在此不做赘述,做编程,不懂API,不知其可也!在此列举常用API,及其通常用法: 西门吹雪1:sleep,这个也算是最简单的吧,用于延时,即程序运行至此处,休息片刻声明:Private Declare Sub Sleep Lib kernel32 Alias Sleep (ByVal dwMilliseconds As Long)用法:sleep 1000休息一秒,后边的参数单位是毫秒2:keybd_event ,发送按键,模拟键盘操作,常用于自动化设计,释放你的双手声明:Private Declare Sub keybd_event Lib user32 (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)用法:keybd_event vbKeyE, 0, 0, 0按下E键keybd_event vbKeyE, 0, KEYEVENTF_KEYUP, 0弹起E键严格来说。单键就是一个按下配合一个弹起,但在非功能键参与的情况下后者可省,keybd_event vbKeyE, 0, 0, 0即可。组合键的用法如下:keybd_event VK_CONTROL, 0, 0, 0按下CTRL键keybd_event vbKeyE, 0, 0, 0按下E键keybd_event vbKeyE, 0, KEYEVENTF_KEYUP, 0弹起E键keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0弹起CTRL键这是同时按下了CTRL和E组合键,当然在这里弹起动作就不能省了,此外:键码都需要提前声明才能用,包括KEYEVENTF_KEYUP在内,详细码表请参照笔者另外一篇文章键盘码表。3:GetCursorPos,获取鼠标所在位置,常用于智能判断声明:Private Declare Function GetCursorPos Lib user32 (lpPoint As POINTAPI) As Long用法:先声明结构体,因为其参数是一个包含X坐标,Y坐标的数据类型,声明如下:Private Type POINTAPIX As LongY As LongEnd TypeDim lpPoint As POINTAPI然后调用GetCursorPos lpPoint,可得到lpPoint.X, lpPoint.Y两个数据。4:WindowFromPoint,获取鼠标光标处目标的句柄,跟上个函数搭配使用,什么是句柄?很抽象的一个东西,自己查吧,很重要的一个东西,是一个long型数据。声明:Private Declare Function WindowFromPoint Lib user32 (ByVal xPoint As Long, ByVal yPoint As Long) As Long用法:Dim hwnd As Longsp = WindowFromPoint(lpPoint.X, lpPoint.Y)结合GetCursorPos 函数,hwnd 即为鼠标下目标的句柄。5:ShowWindow ,用于显示某窗口,常用于自动化操作,需要事先知道该窗口的句柄声明:Private Declare Function ShowWindow Lib user32 (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long用法:ShowWindow hwnd , SW_NORMAL调出某窗口以正常尺寸显示,第一个参数hwnd 是句柄,后边是窗口显示样式,该参数声明同见键盘码表。6:GetWindowText ,获取某窗口标题,需要事先知道该窗口句柄声明:Private Declare Function GetWindowText Lib user32 Alias GetWindowTextA (ByVal hwnd As Long, ByVal lpstring As String, ByVal cch As Long) As Long用法:Dim lpstr As Stringlpstr = Space(255)让lpstr足够长,先放255个空格进去GetWindowText hwnd , lpstr, 255hwnd 为该窗口句柄,调用后把句柄为hwnd 的窗口的标题置于变量lpstr中,用的时候需要去除lpstr里的空格,如:RTrim(lpstr)。7:SendMessage,向某窗口发送消息,可用于类似QQ自动聊天,需要事先知道该窗口的句柄声明:Private Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long用法:Dim a As Stringa = 人生若只如初见!SendMessage hwnd , WM_SETTEXT, 0, ByVal a向句柄为hwnd 的窗口发送字符串a,Const WM_SETTEXT = &HC需要提前声明,如果异常,可去掉或加上参数a前的修饰符ByVal 。此外,这里边有一个误区,该函数可以向任意目标发送消息,如一个QQ聊天窗口,若你得到的是该窗口的句柄,那么调用结果是修改了整个窗口的标题,正确方式是,向该QQ聊天窗口的子窗口-编辑框发消息,它同样是有句柄的。当然,腾讯已经在此做了限制,防止外挂,可以用笔者刚才介绍的第二个函数keybd_event解决此限制,先将字符串置入剪切板,再发送按键ALT+V粘贴进该窗口完成自动输入。8:mouse_event ,鼠标操作,非常实用的一个函数,常用于自动化,释放你的双手声明:Private Declare Sub mouse_event Lib user32 (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)用法:mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0按下左键mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0弹起左键,和键盘操作一样是两个动作。 Const WM_LBUTTONDOWN = &H201,Const WM_LBUTTONUP = &H202,这两个常量需要提前声明。这部分功能更详尽的用法请参考笔者的其他文章。9:SetCursorPos ,设置鼠标光标位置,可和mouse_event 搭配使用,自动化操作声明:Private Declare Function SetCursorPos Lib user32 (ByVal X As Long, ByVal Y As Long) As Long用法:SetCursorPos X, Y把鼠标光标设置到坐标为X,Y的位置,可先用GetCursorPos函数(刚介绍的,没忘吧)得到鼠标当前位置lpPoint.X, lpPoint.Y,然后移动到相对位置,如SetCursorPos lpPoint.X + 500, lpPoint.Y - 500,把鼠标移动到了它的右上方。10:GetWindowTextLength ,获取指定窗口标题长度,常用于精确获取窗口标题,需要事先知道该窗口句柄声明:Private Declare Function GetWindowTextLength Lib user32 Alias GetWindowTextLengthA _(ByVal hwnd As Long) As Long用法:Dim sSave As String, Ret As LongRet = GetWindowTextLength(hwnd)sSave = Space(Ret)GetWindowText hwnd, sSave, Ret + 1和G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论