易语言API发送消息问题

怎么用这个api向特定窗口发送模拟按键的消息,求源码。... 怎么用这个api向特定窗口发送模拟按键的消息,求源码。 展开
 我来答
ycc_312
推荐于2016-02-05 · TA获得超过259个赞
知道小有建树答主
回答量:320
采纳率:100%
帮助的人:232万
展开全部
.版本 2

.DLL命令 _发送消息, 整数型, , "SendMessageA"
.参数 窗口句柄, 整数型
.参数 标识, 整数型
.参数 消息1, 整数型
.参数 消息2, 文本型

.DLL命令 _发送消息A, 整数型, , "SendMessageA"
.参数 窗口句柄, 整数型
.参数 标识, 整数型
.参数 消息1, 整数型
.参数 消息2, 整数型

.DLL命令 模拟键盘行动_, 整数型, "user32.dll", "keybd_event", , 这个函数模拟了键盘行动
.参数 键代码, 整数型, , bVk,欲模拟的虚拟键码
.参数 键扫描码, 整数型, , bScan,键的OEM扫描码
.参数 标志值, 整数型, , dwFlags,标志常数
.参数 特定值, 整数型, , dwExtraInfo,通常不用的一个值

.DLL命令 _投递消息, , , "PostMessageA", , 向指定窗口句柄发送消息
.参数 h
.参数 m
.参数 p
.参数 p
.版本 2

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码

_临时子程序 () ' 在初始化代码执行完毕后调用测试代码
返回 (0) ' 可以根据您的需要返回任意数值

.子程序 _临时子程序

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。

.子程序 文本投递, , 公开, 向指定窗口句柄的窗口中后台发送文本内容,对游戏有效!(无返回值)
.参数 窗口句柄, 整数型, , 接收消息的窗口句柄
.参数 文本内容, 文本型, , 发送的文本内容
.局部变量 消息, 字节集
.局部变量 长度, 整数型
.局部变量 计次, 整数型

消息 = 到字节集 (文本内容)
长度 = 取字节集长度 (消息)
.计次循环首 (长度, 计次)
_投递消息 (窗口句柄, 258, 消息 [计次], 0)
.计次循环尾 ()

.子程序 文本发送, , 公开, 向指定编辑框后台发送文本内容(无返回值)
.参数 临时句柄, 整数型, , 接收消息的编辑框的句柄
.参数 临时内容, 文本型, , 发送的文本内容

_发送消息A (临时句柄, 177, 0, -1)
_发送消息 (临时句柄, 194, 1, 临时内容)

.子程序 按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值)
.参数 窗口句柄, 整数型, , 接收消息的窗口句柄
.参数 键代码, 整数型, , 按键的键代码
.参数 状态, 整数型, 可空, 可空:按键(按下+放开) 1 输入字符 3 #按下 4 #放开
.参数 是否功能键, 逻辑型, 可空, 可空为假:普通键 真:功能键 (为功能键可用于热键技能不输入字符)
.局部变量 按下, 整数型
.局部变量 放开, 整数型

.如果 (是否功能键)
按下 = 260
放开 = 261
.否则
按下 = 256
放开 = 257
.如果结束
.如果真 (状态 = 1)
_投递消息 (窗口句柄, 258, 键代码, 0)
返回 ()
.如果真结束
.如果真 (状态 ≠ 4)
_投递消息 (窗口句柄, 按下, 键代码, 0)
.如果真结束
.如果真 (状态 ≠ 3)
_投递消息 (窗口句柄, 放开, 键代码, 0)
.如果真结束
返回 ()

.子程序 按键组合消息, , 公开, 向指定窗口句柄的窗口中发送组合按键的消息,游戏中有效!(无返回值)
.参数 窗口句柄, 整数型, , 接收消息的窗口句柄
.参数 键代码, 整数型, , 按键的键代码
.参数 功能键码1, 整数型, , 功能键的键代码
.参数 功能键码2, 整数型, 可空, 功能键的键代码(可选)
.参数 功能键码3, 整数型, 可空, 功能键的键代码(可选)

.如果真 (功能键码3 ≠ 0)
_投递消息 (窗口句柄, 260, 功能键码3, 0) ' 按下
.如果真结束
.如果真 (功能键码2 ≠ 0)
_投递消息 (窗口句柄, 260, 功能键码2, 0) ' 按下
.如果真结束
_投递消息 (窗口句柄, 260, 功能键码1, 0) ' 按下
_投递消息 (窗口句柄, 256, 键代码, 0) ' 按下
.如果真 (功能键码3 ≠ 0)
_投递消息 (窗口句柄, 261, 功能键码3, 0) ' 放开
.如果真结束
.如果真 (功能键码2 ≠ 0)
_投递消息 (窗口句柄, 261, 功能键码2, 0) ' 放开
.如果真结束
_投递消息 (窗口句柄, 261, 功能键码1, 0) ' 放开
_投递消息 (窗口句柄, 257, 键代码, 0) ' 放开

.子程序 按键, , 公开, 执行模拟按键(无返回值)
.参数 键代码, 整数型, , 键代码
.参数 状态, 整数型, 可空, 可空:按键(按下+放开) 3 #按下 4 #放开

.如果真 (状态 ≠ 4)
模拟键盘行动_ (键代码, 0, 0, 0)
.如果真结束
.如果真 (状态 ≠ 3)
模拟键盘行动_ (键代码, 0, 2, 0)
.如果真结束

' 按键 标记(按下 放开) 虚拟码
' 通常 0 128
' home键区 1 129 33UP 34Down 35End 36Home 45Ins 46Del
' 光标区 1 129 37左 38上 39右 40下
' win键 1 129 91左 92右
' 菜单键 1 129 93
' print键 1 129 44
' 右CTRL键 1 129 163
' 右SHIFT键 1 129 161
' 右回车键 1 129 13
' Numlock键 1 129 144
' /(小键区) 1 129 111
' 左ALT键 32 128 164
' 右ALT键 33 129 165
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式