51Testing软件测试论坛

标题: 键盘动作:如何在点击行的时候按住CTRL键不放以便多选 [打印本页]

作者: sky-vid    时间: 2007-4-24 10:03
标题: 键盘动作:如何在点击行的时候按住CTRL键不放以便多选
'发送键盘动作 按下Ctrl 键  准备多选
Extern.Declare micVoid, "keybd_event", "user32.dll", "keybd_event",  micByte,micByte,micDWord,micULong
Extern.keybd_event VK_CONTROL,0,0,0

           
RowCount = Browser("合同管理").Page("合同管理").Frame("ifrmGrid_4").WebTable("1").RowCount
For  i =1 to  RowCount
   flag =  Browser("合同管理").Page("合同管理").Frame("ifrmGrid_4").WebTable("1").GetCellData(i,2)
         If flag <>"*" Then
               Browser("合同管理").Page("合同管理").Frame("ifrmGrid_4").WebTable("1").ChildItem(i,2,"WebElement",0).Click
         End If
Next

Extern.keybd_event VK_CONTROL,0,KEYEVENTF_KEYUP ,0

想在单击行的同时按住CTRL键不放,以便多选行

红色字体是键盘动作Ctrl键按下的代码
可是,上面的效果仍然是一行行的单击,Ctrl键的按下动作没有体现出来
问题出在哪呢?

我看到论坛上也有好多讨论键盘动作的,不过,有很多都没看明白,所以,斑竹就不要说让我再去论坛找找了

[ 本帖最后由 sky-vid 于 2007-4-24 10:10 编辑 ]
作者: sky-vid    时间: 2007-4-24 11:14
不好意思,自己费了九牛二虎之力,终于搞定

把 Extern.keybd_event VK_CONTROL,0,0,0 这句话改为

Extern.keybd_event 162,0,0,0

真奇怪,怎么会识别不了 VK_CONTROL
作者: caigua    时间: 2007-4-24 13:54
键盘常量可能未定义
而且你用的那个162是VK_LCONTROL
作者: sky-vid    时间: 2007-4-24 14:27
感谢caigua

不过有人知道VK_Control的值是多少?
另外,还有KEYEVENTF_KEYUP的值是多少?
Extern.keybd_event 162,0,KEYEVENTF_KEYUP ,0  这句话执行了也没效果
我估计也要把 KEYEVENTF_KEYUP改为为它所代表的值

[ 本帖最后由 sky-vid 于 2007-4-24 16:34 编辑 ]
作者: 飞飞    时间: 2007-10-19 14:57
162是VK_LCONTROL
请问哪个知道alt键的值是多少?
作者: hsjzfling    时间: 2007-10-19 17:08
VK_CONTROL 11
VK_MENU 12    (alt)
VK_SHIFT 10




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2