• 新浪微博:
  • 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.7.0
软件大小:46.2M
更新时间:03-02

按键精灵iOS版
立即下载

软件版本:1.7.7
软件大小:29.2M
更新时间:12-06

按键手机助手
立即下载

软件版本:3.7.7
软件大小:262M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201408期】不用插件,也能后台发送消息 [复制链接]

1#
不用插件,也能后台发送消息
作者:兄弟工程师06 编辑:果果。。
今天,咱们天纵少侠06大大,给大家带来了一个API哦,不用插件,也能实现后台发送消息。通过调用API,把字符串分割成一个一个字符,发送到目标窗口。快看看,少侠的秘密宝剑吧~~


API介绍:PostMessage
PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。

使用方法及参数:
声明:
  1. Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
复制代码
调用:
  1. PostMessage hwnd, wMsg, wParam, lParam
复制代码
其中:hwnd是指目标窗体的句柄,wMsg这里使用参数&H102,代表直接发送字符串。wParam表示要发送的内容,lParam这里引用0。(当wMsg的参数为&H102的时候,最后一个参数lParam无效,故引用0即可)

不使用插件,发送消息的具体实现
  1. //声明API
  2. Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
  3. //直接发送消息:通过将字符串分割成一个一个字符,发送到目标窗体
  4. Function SendString(hwnd,str)
  5. For i = 1 To Len(str)
  6. PostMessage hwnd, &H102, ASC(Mid(Str,i,1)), 0
  7. Next
  8. End Function
  9. //调用函数SendString
  10. 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



本文由按键学院提供技术支持
按键学院实战班火热招生
按键学院基础视频抢先观看

您所在的用户组无法下载或查看附件


    已有5评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2022/4/25 12:02:30 执行 审核帖子 操作
    <strong>按键学院交流群(开放中):376122403<br />
    <br />
    <a href="http://bbs.anjian.com/thread-548439-1-1.html" target="_blank">按键学院开班<strong> <font color="Red">【安卓导师】+【实战导师】招聘导师</font></strong>啦~~<font color="Red"><strong>待遇特别好,有钱,就是任性。</strong> </font></a><br />
    <br />
    <br />
    <a href="http://bbs.anjian.com/t
    2#

    后台发送消息?

    3#

    全都需要回复  ̄□ ̄||

    4#

    很好很强大

    5#

    想看

    6#

    红啊您让的

    按键精灵、易语言接单。QQ:12484234
    7#

    好用,感谢分享

    8#

    lalalalal

    9#

    11111111111

    10#

    学习学习

    11#

    撒旦法师打发

    为了做脚本而游戏
    12#

    发来的分配拉萨

    13#

    Tnx!!!!!!

    14#

    00000000000000000000000

    15#

    好想知道不用插件怎么弄

    16#

    学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习

    17#

    你麻麻知道 那么屌吗~~ 沙发

    18#


    19#

    看看………………'

    20#

    刚接触到按键精灵,非常好!

    发新话题 回复该主题