gaoyuan22 发表于 2009-4-15 21:11:25

报告 一个send 函数的 bug

send左右ctrl 键 按下 后
   send("{lctrl down}")
   send("{rctrl down}")

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

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


不知道 是不是 我弄错,或则有没有办法饶开?

sxd 发表于 2009-4-15 21:24:23

不光这样 就连普通的 send 不涉及到 down 和up的时候 有时候也会ctrl弹不起

gaoyuan22 发表于 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 )
一样没用。
请老兄知道的话,教我一下啊?
感谢先!

seominho 发表于 2009-4-16 09:27:23

我记得 send 函数 参数好像没有空格吧??{CTRLDOWN}   {CTRLUP}

gaoyuan22 发表于 2009-4-16 15:05:07

回复 4# seominho 的帖子

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

你把上面我发的代码放游戏里,看看颜色就知道了。
或者看看帮助文件里面有写。

dingwanz 发表于 2009-4-24 19:17:43

问题一样 模拟按下 就起不了啊
页: [1]
查看完整版本: 报告 一个send 函数的 bug