找回密码
 加入
搜索
查看: 5476|回复: 12

[AU3基础] 关于Send({a down})命令的讨论 已解决

  [复制链接]
发表于 2010-3-15 22:19:20 | 显示全部楼层 |阅读模式
本帖最后由 gdmgb520 于 2010-3-19 16:58 编辑

讨论一下:
1、
Run("notepad.exe")
Sleep(2000)
Send("{a down}") ;按住按键 A
Sleep(5000)
上面的代码我希望在记事本里面会出现很多a,但是没有,望有朋友解释一下这是上面原因。
2、
Run("notepad.exe")
Sleep(2000)
While 1
Send("{a down}") ;按住按键 A
WEnd
这段代码才实现了一直出现a。


望大家指点
 楼主| 发表于 2010-3-16 22:38:15 | 显示全部楼层
为什么用MouseDown("left")可以实现鼠标左键一直按下的效果,但是用Send("{a down}")无法实现按键“a”一直按下的效果。
大家没有遇到过这个问题吗?
发表于 2010-3-17 05:24:41 | 显示全部楼层
111111111111111顶啊

评分

参与人数 1金钱 -5 收起 理由
afan -5 恶意灌水

查看全部评分

发表于 2010-3-17 07:15:19 | 显示全部楼层
我遇到了。。不能一直按。。
 楼主| 发表于 2010-3-17 11:01:36 | 显示全部楼层
呵呵可是一直没有人来帮忙啊。
是不是这个问题太低级了。
高手可以不屑一顾,但新手们可以来讨论讨论嘛。

不知道用AU3直接调用API函数的方法能不能实现啊。(我现在还不会调用API)
 楼主| 发表于 2010-3-17 17:35:09 | 显示全部楼层
我今天试了调用API来实现,结果不成功。$result = DllCall("user32.dll", "int", "keybd_event", "byte",53, "byte",0, "long", 0, "long", 0)
;该语句成功输出了一个按键"5"
我在API参考手册中看到了这样一句:
“备注:尽管keybd_event传递一个与OEM相关的硬件扫描码给系统,但应用程序不能用此扫描码。系统在内部将扫描码转换成虚拟键码,并且在传送给应用程序前清除键码的UP/down位。”
所以我估计要模拟键一直保存按下是不可能的。
不过我感觉,调用API输入按键比AU3的Send每秒钟输入的次数要多,不知道可不可以近似认为键被一直按下。
待会在游戏你试一下。
发表于 2010-3-17 18:37:19 | 显示全部楼层
确实不行啊,我试过了,出现不了好多的A,求真相帝
 楼主| 发表于 2010-3-17 21:40:34 | 显示全部楼层
告诉大家一个好消息,我虽然没有实现键按下后不放,但是,实现了键按下后不放的效果。就是用的下面的代码
While 1
        $result = DllCall("user32.dll", "int", "keybd_event", "byte",53, "byte",0, "long", 0, "long", 0)
WEnd

我之所以要实现键按下后不放的效果,是因为我玩的QQ华夏。我之前写的脚本使用一个技能速度比用手一直按着键盘要慢。我现在用上面的语句,实现的效果跟用手按着的一样。
呵呵,玩游戏的朋友可以试一下啊。
发表于 2010-3-19 01:14:39 | 显示全部楼层
温习一下循环语句
 楼主| 发表于 2010-3-19 10:12:16 | 显示全部楼层
额呵呵,ls元老能不能给大家像个办法,实现按键被按着一直不放的效果啊!!
发表于 2010-5-26 12:51:56 | 显示全部楼层
想要你的找图源码
发表于 2010-5-26 14:05:01 | 显示全部楼层
第一段代码:是一次激活按住A ,但有一个问题:为何不连续出A呢?原因是AU3的要求是一次(自个理解)
第二段代码:是一次激活按住A后,有了“While 1“的原故,导致代码不是一直按住A键,而是来回循环按A键,也就是说,按一下A ,松开一次,再接着按下A,再松开,就循环下去!
这里要问了:为什么在系统下行呢?那就要问系统了!原因系统中有..........
 楼主| 发表于 2010-5-26 21:26:42 | 显示全部楼层
楼上前辈既然都说到这个份上了,不如直接把真理说出来吧,
给大家来个痛快的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-2 11:36 , Processed in 0.090405 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表