找回密码
 加入
搜索
查看: 2093|回复: 5

报告 一个send 函数的 bug

[复制链接]
发表于 2009-4-15 21:11:25 | 显示全部楼层 |阅读模式
send左右ctrl 键 按下 后
   send("{lctrl down}")
   send("{rctrl down}")

使用:
   send("{lctrl up}")
   send("{rctrl up}")

发现 ctrl 键还是 按下状态。
send("{^ up}")   send("{lctrl up}")  与 send("{rctrl up}") 似乎都没有任何效果。


不知道 是不是 我弄错,或则有没有办法饶开?
发表于 2009-4-15 21:24:23 | 显示全部楼层
不光这样 就连普通的 send 不涉及到 down 和up的时候 有时候也会ctrl弹不起
 楼主| 发表于 2009-4-15 21:35:44 | 显示全部楼层

回复 2# sxd 的帖子

是这样的,
我以前用过 autoit 自带的 鼠标消息,结果会导致 alt 键不起,呵呵。完全不明白怎么会事。
后来就改用 PostMessage 函数了。

楼上老兄 能请问以下 api函数 的 模拟按键怎么写么。
autoit 实在 模拟按键部分 用不了。

不是说 PostMessage 这个消息函数,
而是真正的模拟 按键
比如 keybd_event  这样的函数

知道大概功能,但是不知道在 autoit 里怎么写这个。
我这样写:
DllCall($user32, "long", "keybd_event", "BYTE", 0x31,"BYTE",0,"DWORD",0,"DWORD",0 )
可以按下 1 键
但是 不能弹起 1键
不知道 正确的 弹起 怎么写。
看说明 倒数第二项参数 应该写这个:
DEYEVENTF_KEYUP
但我写成这样:
DllCall($user32, "long", "keybd_event", "BYTE", 0x31,"BYTE",0,"DWORD",“DEYEVENTF_KEYUP”
,"DWORD",0 )
一样没用。
请老兄知道的话,教我一下啊?
感谢先!
发表于 2009-4-16 09:27:23 | 显示全部楼层
我记得 send 函数 参数好像没有空格吧??{CTRLDOWN}   {CTRLUP}
 楼主| 发表于 2009-4-16 15:05:07 | 显示全部楼层

回复 4# seominho 的帖子

呵呵。
你说的那个命令和
   send("{lctrl down}")
   send("{rctrl down}")
是不同的两种。
{CTRLDOWN} 的意思是:
按着 ctrl down 不放,
直到 {CTRLUP} 输入为止。

你把上面我发的代码放游戏里,看看颜色就知道了。
或者看看帮助文件里面有写。
发表于 2009-4-24 19:17:43 | 显示全部楼层
问题一样 模拟按下 就起不了啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-23 05:32 , Processed in 0.072931 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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