找回密码
 加入
搜索
查看: 1679|回复: 2

发现 autoit 部分 函数 有奇怪 的副作用。请教如何避免。

  [复制链接]
发表于 2008-10-19 01:12:43 | 显示全部楼层 |阅读模式
使用了 autoit 一段时间,有个奇怪的发现,

autoit 本身提供 了大量 方便常用的函数,
但是,我使用过的一小部分,有很奇怪的“附带作用”

比如,鼠标键盘 后台 消息 autoit自己带有这样的函数
ControlSend ( "窗口标题", "窗口文本", 控件ID, "字符串" [, 标志] )
当然,不能这么写
要发送后台消息必须写成这样
ControlSend ( "窗口句柄", "", "", "字符串")

但是,
如果使用 autoit自带的这个ControlSend 函数,会导致 键盘的 ctrl,shift 以及 alt  成为 按下状态。
(哪怕你发送的后台消息和 上面说的3个功能键完全不相干,也是会导致同样结果的)
而且 其中 右边的 Alt 手动按下后 就再也无法弹起。
一定要按 左 Alt 键 才可以结束 按下状态。

十分 的奇怪。

最后,我只好 直接调用user32.dll:
        Local $user32 = DllOpen("user32.dll")
        DllCall($user32, "int", "PostMessage", "hwnd", $Hwnd, "int", 0x100, "int", $keys, "long", 0)
        Sleep(1)
        DllCall($user32, "int", "PostMessage", "hwnd", $Hwnd, "int", 0x101, "int", $keys, "long", 0xC0000000)
这样来实现 后台键盘消息。

最近 使用 autoit 的 RUN 命令

发现 RUN 函数 也有个 奇怪的问题,

使用这一函数,有很大几率 让 任务栏中的选项“任务栏中的其他图标(A)” 这一 选项 成为 选择状态,
从而使得 任务栏中的 图标 全部显示出来。
如果你自己手动 关闭。
在使用 RUN函数后,还会继续成为 选择状态。

注:我使用的xp系统。

真的很费解,

上面两个问题,好象和该函数的功能 完全 风马牛 不相干啊。
不知道为什么会有这样的 “附带作用”。

关于第二个问题,如何避免呢?
还是直接调用 windows 的dll 文件?

如果是,如何调用?是哪个文件,格式如何?

谢谢先。

[ 本帖最后由 gaoyuan22 于 2008-10-19 15:40 编辑 ]
发表于 2008-10-19 02:15:16 | 显示全部楼层
有么?怎么没感觉。

[ 本帖最后由 k1727 于 2008-10-19 02:18 编辑 ]
发表于 2008-10-19 09:01:38 | 显示全部楼层
很仔细,第一个副作用我也有感觉到,不过用别的软件比如说“蝴蝶按键”也会出现类似的情况,应该不只是AU3的问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 21:54 , Processed in 0.086338 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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