1:连续赋值:变量1 = 变量2 = 变量3 = ... = 表达式,这东西,易语言自带的帮助文档(F1)就可以看到,或者论坛搜索关键词:连续赋值
2.SendMessageA(投递消息)还有一个比较像的是postMessage,他俩区别是
Send:向窗口发送消息并等待窗口处理完该消息才返回
post:投递到消息队列后立即返回,不等待处理
sendmessage参数:yValwMsg (整数型)是消息标识符,256 是WM_KEYDOWN(按下),257是WM_KEYUP (按键释放)
还有一个是发送字符,部分游戏的脚本广告机会用到:WM_CHAR (258)
ByValwParam (整数型),值参数,如果消息标识符是256或者257则为虚拟键码,就是易语言的键代码:#W键,#Ctrl键,#F6键等,不为以上消息标识符的话这个参数会传递别的东西
lParam (整数型) 函数参数2:这是一个 32 位的值,由按键的重复次数、扫描码、扩展键标志、上下文代码、键的先前状态和转换状态等信息的二进制位构造而来
你代码中的 0表示整个结构体的参数都是0,即
重复次数 = 0 (第一次按下)
扫描码 = 0 (系统会使用 wParam 的虚拟键码来生成)
扩展键标志 = 0 (不是扩展键如右Alt/Ctrl)
上下文代码 = 0 (键按下时 Alt 键未按下)
键的先前状态 = 0 (按键之前是弹起状态 )
转换状态 = 0 (表示按键被按下 对应 WM_KEYDOWN)(如果是WM_KEYUP,这个位是 1)
第三个问题:不依赖模块使窗口后台点击,这个需要判断游戏是否接受鼠标消息,如果游戏对窗口焦点有检测,或如果游戏使用 DirectX/OpenGL 等图形接口直接处理输入,则无法通过api实现后台点击,如果不检测焦点,即后台允许接受鼠标消息和按键消息,
lParam = 左移 (Y, 16) +X
PostMessageA (游戏窗口, 512, 0, lParam) ' 移动鼠标即可
4:取运行时间()返回自系统启动以来所经过的毫秒数
|