易语言 取某窗口句柄后然后后台对这个窗口后台模拟按键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了易语言 取某窗口句柄后然后后台对这个窗口后台模拟按键相关的知识,希望对你有一定的参考价值。

如何通过获取某窗口的句柄,然后对这个窗口进行操作呢?

比如我要对这个窗口 惊喜 模拟按键(#回车键)

要怎么才能后台模拟呢
(用了超级模块还是精易模块忘了)

----------------------------------------------------------------

文本投递 (句柄, 编辑框1.内容) ' 投递文本到句柄内

键盘模拟 (句柄, #回车键, , )
----------------------------------------------------------------

(句柄是已经取好的)(是后台发话的小工具)

这样,这代码可以后台投递文本,但是不能后台模拟回车键,
请问如何实现呢?

参考技术A 按键消息(句柄,#F1)

.版本 2
.程序集 窗口程序集1
.程序集变量 eb5ht, 整数型
.程序集变量 hetrthb6y5j, 整数型
.子程序 按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值)
.参数 窗口句柄, 整数型, , 接收消息的窗口句柄
.参数 键代码, 整数型, , 按键的键代码
.参数 状态, 整数型, 可空, 可空:按键(3+4) 1 #按键_ 2 功能键方式(按下+放开) 3 #按下_ 4 #放开_
eb5ht = 键代码
hetrthb6y5j = 状态
按键消息处理 (窗口句柄)

.子程序 按键消息处理, 逻辑型
.参数 hwnd, 整数型
.如果真 (hwnd ≠ 0)
.判断开始 (hetrthb6y5j = 1)
_投递消息 (hwnd, 258, eb5ht, 0)
.判断 (hetrthb6y5j = 2)
_投递消息 (hwnd, 260, eb5ht, 0)
_投递消息 (hwnd, 261, eb5ht, 0)
.判断 (hetrthb6y5j = 3)
_投递消息 (hwnd, 256, eb5ht, 0)
.判断 (hetrthb6y5j = 4)
_投递消息 (hwnd, 257, eb5ht, 0)
.默认
_投递消息 (hwnd, 256, eb5ht, 0)
_投递消息 (hwnd, 257, eb5ht, 0)
.判断结束
返回 (真)
.如果真结束
返回 (假)
.版本 2
.DLL命令 _投递消息, , , "PostMessageA", 公开, 向指定窗口句柄发送消息
.参数 h
.参数 m
.参数 p
.参数 p本回答被提问者和网友采纳
参考技术B 问题描述清楚点么。。。追问

文本投递 (句柄, 编辑框1.内容) ' 投递文本到句柄内

键盘模拟 (句柄, #回车键, , )

这样,这代码可以后台投递文本,但是不能后台模拟回车键,
请问如何实现呢?

谁帮我把这段易语言代码写成C#代码?

.版本 2.子程序 文本_投递, , 公开, 向指定窗口句柄的窗口中后台发送文本内容,对游戏有效(无返回值).参数 窗口句柄, 整数型, , 接收消息的窗口句柄.参数 文本内容, 文本型, , 发送的文本内容.局部变量 消息, 字节集.局部变量 计次, 整数型消息 = 到字节集 (文本内容).计次循环首 (取字节集长度 (消息), 计次) 投递消息整数 (窗口句柄, 258, 消息 [计次], 0) 编辑框1.加入文本 (到文本 (消息 [计次]) + #换行符).计次循环尾 ().子程序 投递消息整数, , 公开.参数 窗口句柄, 整数型.参数 消息号, 整数型.参数 消息参数1, 整数型.参数 消息参数2, 整数型PostMessageA (窗口句柄, 消息号, 消息参数1, 消息参数2)----------------DLL命令--------------------------.版本 2.DLL命令 PostMessageA, , , "PostMessageA", 公开, 投递消息 .参数 hwnd, 整数型 .参数 消息号, 整数型 .参数 消息参数1, 整数型 .参数 消息参数2, 整数型

参考技术A    [System.Runtime.InteropServices.DllImport("user32.dll")]
        static extern int PostMessageA(IntPtr h, int msg, int wp, int lp);
        void 文本_投递(IntPtr h,string str) 
            byte[] b = Encoding.GetEncoding("gb2312").GetBytes(str);
            for (int i = 0; i < b.Length; i++) 
                PostMessageA(h, 258, b[i], 0);
            
        

本回答被提问者和网友采纳

以上是关于易语言 取某窗口句柄后然后后台对这个窗口后台模拟按键的主要内容,如果未能解决你的问题,请参考以下文章

易语言超文本浏览框取真实句柄(可消息句柄)

谁帮我把这段易语言代码写成C#代码?

易语言怎么通过窗口句柄实现关闭该窗口或发送东西

Delphi取所有窗口句柄

易语言监控鼠标按键

易语言怎么启动线程