如何快速制作脚本,不用插件也能用按键精灵后台发送消息

社区服务
高级搜索
猴岛论坛辅助工具如何快速制作脚本,不用插件也能用按键精灵后台发送消息
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
0个回复

[游戏辅助]如何快速制作脚本,不用插件也能用按键精灵后台发送消息

楼层直达
mimi_rice

ZxID:55494225

等级: 上士
举报 只看楼主 使用道具 楼主   发表于: 2014-11-19 0

来源:按键学院   【按键精灵】
今天给大家带来了一个API哦,不用插件,也能实现后台发送消息。通过调用API,把字符串分割成一个一个字符,发送到目标窗口。快看看,API的秘密宝剑吧~~

API介绍:PostMessage
PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。
使用方法及参数:
声明:
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
调用:
PostMessage hwnd, wMsg, wParam, lParam

其中:hwnd是指目标窗体的句柄,wMsg这里使用参数&H102,代表直接发送字符串。wParam表示要发送的内容,lParam这里引用0。(当wMsg的参数为&H102的时候,最后一个参数lParam无效,故引用0即可)

不使用插件,发送消息的具体实现

//声明API
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
//直接发送消息:通过将字符串分割成一个一个字符,发送到目标窗体
Function SendString(hwnd,str)
For i = 1 To Len(str)
    PostMessage hwnd, &H102, ASC(Mid(Str,i,1)), 0
    Next
End Function
//调用函数SendString
SendString 目标窗体句柄,"加入按键学院实战班,坐拥脚本江山与美人~~~"

其中:关键的代码段为“PostMessage hwnd, &H102, ASC(Mid(Str,i,1)), 0”。“ASC(Mid(Str,i,1))”,先将字符串中字符一个一个取出,转化为ANSI值,传送到目标窗体。

通过窗口插件,也可以实现发送消息
按键精灵中自带的窗体插件:Find、Search、MousePoint等也可以实现查找窗口句柄,然后实现发送消息。大家如果感兴趣,也可以自己去试试哦~~

命令名称:

Find 查找窗口

命令功能:

查找窗口类名或者标题

命令参数:

参数1 字符串型,窗口类名
参数2 字符串型,窗口标题

返 回 值:

整数型,窗口句柄

脚本例子:
(8.x语法)  

Call RunApp("notepad.exe")  
Delay 1500   //0表示忽略  
//下面这句是查找窗口类名("Notepad")或者标题(0),返回找到的句柄Hwnd  
Hwnd = Plugin.Window.Find("Notepad", 0)   MsgBox "查找到的父窗口句柄为:"& Hwnd


命令名称:

Search 遍历符合窗口

命令功能:

遍历符合窗口标题的句柄保存到数值串里

命令参数:

参数1 字符串型,窗口符合的标题

返 回 值:

字符串型,句柄数值串

脚本例子:
(8.x语法)  

//下面这句是遍历符合窗口标题("记事本")的句柄保存到数组(HwndEx)里  
HwndEx = Plugin.Window.Search("记事本")  
MsgBox "查找到符合的窗口句柄为:"& HwndEx  
//下面这句用于分割字符串,将获得的句柄组分割  
dim MyArray  
MyArray = Split(HwndEx, "|")  
If UBound(MyArray)>=0 Then  
i=0  
    For UBound(MyArray)  
//下面这句将字符串转换成数值  
    Msgbox "第 "& i+1 &" 个窗口句柄为:"&Clng(MyArray(i))  
    i=i+1  
    Next  
End If  


命令名称:

MousePoint 鼠标指向窗口

命令功能:

得到鼠标指向的窗口句柄

命令参数:


返 回 值:

整数型,窗口句柄

脚本例子:
(8.x语法)  

//下面这句是得到鼠标指向的窗口句柄   Hwnd0 = Plugin.Window.MousePoint()  
MsgBox "得到鼠标指向的窗口句柄为:"& Hwnd0  



« 返回列表
发帖 回复