18718808484 发表于 2020-4-13 23:26:21

求易语言模拟键盘按住、弹起 鼠标按住、弹起。

还有滚轮按住、弹起。上滚。下滚的源码。不要文字解答以及用什么模块,要代码易语言的代码

十万个为什么 发表于 2020-4-13 23:48:22

本帖最后由 十万个为什么 于 2020-4-14 00:05 编辑

键盘消息按住某键
.版本 2

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

.如果 (是否功能键)
    按下 = 260
    放开 = 261
.否则
    按下 = 256
    放开 = 257
.如果结束
.判断开始 (状态 = 1 或 是否为空 (状态))
    PostMessageA (窗口句柄, 258, 键代码, 0)
.判断 (状态 = 2)
    PostMessageA (窗口句柄, 按下, 键代码, 0)
.判断 (状态 = 3)
    PostMessageA (窗口句柄, 按下, 键代码, 0)
.判断 (状态 = 4)
    PostMessageA (窗口句柄, 放开, 键代码, 0)
.判断 (状态 = 5)
    PostMessageA (窗口句柄, 按下, 键代码, 0)
.默认

.判断结束



鼠标_消息.

.版本 2

.子程序 鼠标_消息, , 公开, 向指定窗口发送鼠标动作消息(无返回值)
.参数 窗口句柄, 整数型, 可空, 可空:为桌面超级列表框句柄接收鼠标消息窗口句柄
.参数 水平坐标, 整数型, 可空, 可空:为原水平坐标不变移动目标鼠标水平坐标 (注:坐标为参数一窗口句柄中的坐标)
.参数 垂直坐标, 整数型, 可空, 可空:为原垂直坐标不变移动目标鼠标垂直坐标
.参数 键, 整数型, 可空, 可空:为左键1 #左键   2 #右键   3 #中键4 #中键上滚动 5 #中键下滚动(滚动前后请按下放开中键)
.参数 控制, 整数型, 可空, 可空:为单击1 #单击   2 #双击   3 #按下4 #放开
.局部变量 坐标值, 整数型

.如果真 (窗口句柄 = 0)
    窗口句柄 = GetDesktopWindow ()
.如果真结束
.如果真 (是否为空 (水平坐标))
    水平坐标 = 2
.如果真结束
.如果真 (是否为空 (垂直坐标))
    垂直坐标 = 2
.如果真结束
坐标值 = 水平坐标 + 垂直坐标 × 65536
.如果真 (键 = 4)' 中键上滚动
    SendMessageA (窗口句柄, 522, 7864336, 坐标值 + 25100873)
    返回 ()
.如果真结束
.如果真 (键 = 5)' 中键下滚动
    SendMessageA (窗口句柄, 522, -7864304, 坐标值 + 25100873)
    返回 ()
.如果真结束
SendMessageA (窗口句柄, 512, 2, 坐标值)
.如果真 (键 = 0 或 键 = 1)
    .如果真 (控制 = 0 或 控制 = 1)
      SendMessageA (窗口句柄, 513, 1, 坐标值)' 左键按下
      SendMessageA (窗口句柄, 514, 0, 坐标值)' 左键放开
    .如果真结束
    .如果真 (控制 = 2)
      SendMessageA (窗口句柄, 513, 1, 坐标值)
      SendMessageA (窗口句柄, 514, 0, 坐标值)
      SendMessageA (窗口句柄, 515, 0, 坐标值)' 双击左键
    .如果真结束
    .如果真 (控制 = 3)
      SendMessageA (窗口句柄, 513, 1, 坐标值)
    .如果真结束
    .如果真 (控制 = 4)
      SendMessageA (窗口句柄, 514, 0, 坐标值)
    .如果真结束
    返回 ()
.如果真结束
.如果真 (键 = 2)
    .如果真 (控制 = 0 或 控制 = 1)
      SendMessageA (窗口句柄, 516, 2, 坐标值)' 右键按下
      SendMessageA (窗口句柄, 517, 2, 坐标值)' 右键放开
    .如果真结束
    .如果真 (控制 = 2)
      SendMessageA (窗口句柄, 516, 2, 坐标值)
      SendMessageA (窗口句柄, 517, 2, 坐标值)
      SendMessageA (窗口句柄, 518, 0, 坐标值)' 双击右键
    .如果真结束
    .如果真 (控制 = 3)
      SendMessageA (窗口句柄, 516, 2, 坐标值)
    .如果真结束
    .如果真 (控制 = 4)
      SendMessageA (窗口句柄, 517, 2, 坐标值)
    .如果真结束
    SendMessageA (窗口句柄, 123, 132782, 坐标值 + 25100873)' 右键放开
    返回 ()
.如果真结束
.如果真 (键 = 3)
    .如果真 (控制 = 0 或 控制 = 1)
      SendMessageA (窗口句柄, 519, 16, 坐标值)' 中键按下
      SendMessageA (窗口句柄, 520, 0, 坐标值)' 中键放开
    .如果真结束
    .如果真 (控制 = 2)
      SendMessageA (窗口句柄, 519, 16, 坐标值)
      SendMessageA (窗口句柄, 520, 0, 坐标值)
      SendMessageA (窗口句柄, 521, 0, 坐标值)' 双击中键
    .如果真结束
    .如果真 (控制 = 3)
      SendMessageA (窗口句柄, 519, 16, 坐标值)
    .如果真结束
    .如果真 (控制 = 4)
      SendMessageA (窗口句柄, 520, 0, 坐标值)
    .如果真结束
    返回 ()
.如果真结束
' WM_MOUSEFIRST = 512
' WM_MOUSEMOVE = 512
' // 移动鼠标
' WM_LBUTTONDOWN = 513
' //按下鼠标左键
' WM_LBUTTONUP = 514
' //释放鼠标左键
' WM_LBUTTONDBLCLK = 515
' //双击鼠标左键
' WM_RBUTTONDOWN = 516
' //按下鼠标右键
' WM_RBUTTONUP = 517
' //释放鼠标右键
' WM_RBUTTONDBLCLK = 518
' //双击鼠标右键
' WM_MBUTTONDOWN = 519
' //按下鼠标中键
' WM_MBUTTONUP = 520
' //释放鼠标中键
' WM_MBUTTONDBLCLK = 521
' //双击鼠标中键
' WM_MOUSEWHEEL = 522
' 当鼠标轮子转动时发送此消息个当前有焦点的控件

YI语言新手 发表于 2020-4-14 15:49:07

十万个为什么 发表于 2020-4-13 23:48
键盘消息按住某键
.版本 2



这是大佬,但是用某超级和某易会更加好吧

18718808484 发表于 2020-4-14 20:47:21

十万个为什么 发表于 2020-4-13 23:48
键盘消息按住某键
.版本 2



PostMessageA
GetDesktopWindow
SendMessageA
DLL命令可以发下嘛:lol

一只易猫 发表于 2020-4-15 07:44:01

18718808484 发表于 2020-4-14 20:47
PostMessageA
GetDesktopWindow
SendMessageA


.版本 2

.DLL命令 PostMessageA, 整数型, "user32.dll", "PostMessageA", , 将一条消息投递到指定窗口的消息队列。投递的消息会在Windows事件处理过程中得到处理。在那个时候,会随同投递的消息调用指定窗口的窗口函数。特别适合那些不需要立即处理的窗口消息的发送。如消息投递成功,则返回TRUE(非零)。会设置GetLastError。
.参数 hWnd, 整数型,, 接收消息的那个窗口的句柄。如设为HWND_BROADCAST,表示投递给系统中的所有顶级窗口。如设为零,表示投递一条线程消息(参考PostThreadMessage)
.参数 Msg, 整数型,, 消息标识符
.参数 wParam, 整数型,, 具体由消息决定
.参数 lParam, 整数型,, 具体由消息决定

一只易猫 发表于 2020-4-15 07:44:44

18718808484 发表于 2020-4-14 20:47
PostMessageA
GetDesktopWindow
SendMessageA


.版本 2

.DLL命令 GetDesktopWindow, 整数型, "user32", "GetDesktopWindow", ,

一只易猫 发表于 2020-4-15 07:46:47

.版本 2

.DLL命令 PostMessageA, 整数型, "user32.dll", "PostMessageA", , 将一条消息投递到指定窗口的消息队列。投递的消息会在Windows事件处理过程中得到处理。在那个时候,会随同投递的消息调用指定窗口的窗口函数。特别适合那些不需要立即处理的窗口消息的发送。如消息投递成功,则返回TRUE(非零)。会设置GetLastError。
.参数 hWnd, 整数型,, 接收消息的那个窗口的句柄。如设为HWND_BROADCAST,表示投递给系统中的所有顶级窗口。如设为零,表示投递一条线程消息(参考PostThreadMessage)
.参数 Msg, 整数型,, 消息标识符
.参数 wParam, 整数型,, 具体由消息决定
.参数 lParam, 整数型,, 具体由消息决定

.版本 2

.DLL命令 PostMessageA, 整数型, "user32.dll", "PostMessageA", , 将一条消息投递到指定窗口的消息队列。投递的消息会在Windows事件处理过程中得到处理。在那个时候,会随同投递的消息调用指定窗口的窗口函数。特别适合那些不需要立即处理的窗口消息的发送。如消息投递成功,则返回TRUE(非零)。会设置GetLastError。
.参数 hWnd, 整数型,, 接收消息的那个窗口的句柄。如设为HWND_BROADCAST,表示投递给系统中的所有顶级窗口。如设为零,表示投递一条线程消息(参考PostThreadMessage)
.参数 Msg, 整数型,, 消息标识符
.参数 wParam, 整数型,, 具体由消息决定
.参数 lParam, 整数型,, 具体由消息决定

一只易猫 发表于 2020-4-15 07:48:07

.版本 2

.DLL命令 SendMessageA, int, "user32.dll", "SendMessageA", , 将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
.参数 hWnd, 整数型,, 其窗口程序将接收消息的窗口的句柄。
.参数 Msg, 整数型,, 指定被发送的消息。
.参数 wParam, int,, 指定附加的消息特定信息。
.参数 lParam, int,, 指定附加的消息特定信息。

18718808484 发表于 2020-4-15 21:30:35

一只易猫 发表于 2020-4-15 07:48
.版本 2

.DLL命令 SendMessageA, int, "user32.dll", "SendMessageA", , 将指定的消息发送到一个 ...

有E.程序吗 搞个下载组合一起 我老是搞错:'(

18718808484 发表于 2020-4-18 21:01:59

有人吗有人吗有人吗吗
页: [1] 2
查看完整版本: 求易语言模拟键盘按住、弹起 鼠标按住、弹起。