易语言中 找到指定窗口 发送按键 如何实现

2024-12-26 09:31:23
推荐回答(5个)
回答1:

.版本 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

回答2:

SendMessage(Hwd2,WM_CHAR,0x13,0);

如果SENDMESSAGE不行,就试试POSTMESSAGE

findwindow api函数
.DLL命令 API_寻找顶级窗口, 整数型, "user32", "FindWindowA", 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) 找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
.参数 窗口类名, 文本型, , 指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
.参数 窗口文本, 文本型, , 指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 示例Dim hw&, cnt&Dim rttitle As * 256hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4cnt = GetWindowText(hw&, rttitle, 255)MsgBox Left$(rttitle, cnt), 0, "RTMain title";
-----------------------
.DLL命令 API_发送消息, 整数型, "user32", "SendMessageA", 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型安全”声明形式 由具体的消息决定
.参数 窗口句柄, 整数型, , 要接收消息的那个窗口的句柄
.参数 信息值, 整数型, , 消息的标识符
.参数 参数一, 整数型, , 具体取决于消息
.参数 参数二, 整数型, , 具体取决于消息;

回答3:

找到指定的窗口你可以枚举窗口标题和类名,然后发送消息

回答4:

可以用API实现。

回答5:

模拟按键(,,)
api发送消息(,,)