请教 关于API函数 keybd_event 的问题。
手头只有个本api函数大全,但,在autoit里调用 api 函数的 格式 似乎略微有不同,
试了下下面的语句 是按下 ctrl 键(0x11)的功能。
Local $user32 = DllOpen("user32.dll")
DllCall($user32, "long", "keybd_event", "BYTE", 0x11,"BYTE","","DWORD","","DWORD","" )
但是怎么也没弄明白 up 这个键 该怎样写呢? http://msdn.microsoft.com/en-us/library/ms927178.aspx
回复 2# pusofalse 的帖子
键盘键值表?不是问这个。
楼上老兄 能不能 给个
keybd_event 函数 在 autoit 里调用的 例子。
一个down,一个up 就可以了,
先谢谢了! 函数原型;VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);
参数:
bVk:定义一个虚据拟键码。键码值必须在1~254之间。
bScan:定义该键的硬件扫描码。
dwFlags:定义函数操作的名个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位。
KEYEVENTF_EXETENDEDKEY:若指定该值,则扫描码前一个值为OXEO(224)的前缀字节。DEYEVENTF_KEYUP:若指定该值,该键将被释放;若未指定该值,该键交被接下。dwExtralnfo:定义与击键相关的附加的32位值。 谢谢,这个函数说明我也有。
就是不知道在 autoit 里该怎么写。
找不到例子。 keybd_event 在 WinAPI.au3 里面找不到,应该怎么用 #include来调用呀? 本帖最后由 iftodo 于 2009-8-30 21:34 编辑
DllCall("User32.dll", "none", "mouse_event", "int", 0x2, _
"int", 0, "int", 0, "int", 0, "int", 0) ;Down
DllCall("User32.dll", "none", "mouse_event", "int", 0x4, _
"int", 0, "int", 0, "int", 0, "int", 0);Up
非要用这个么 用这个还不如用send反正大家都是全局的 好东西。。。 回复 6# onestone01
WinAPIEx.au3里有 正巧路过,顺手回下,方便下后人
_WinAPI_Keybd_Event(13,0,0,0) ;发送全局回车,相对就的动作是按下,控件的话好像只对激活的才有效.第三个参数为$KEYEVENTF_EXTENDEDKEY或$KEYEVENTF_KEYUP(参考4#的说明)
默认是保持按下,如果要模似按下弹起则参考下面这个,这是发送WIN+D的示例#include <WinAPIEx.au3>
_WinAPI_Keybd_Event(0x5B, 0, 0 ,0)
_WinAPI_Keybd_Event(68, 0, 0 ,0)
_WinAPI_Keybd_Event(68, 0, $KEYEVENTF_KEYUP ,0)
_WinAPI_Keybd_Event(0x5B, 0, $KEYEVENTF_KEYUP,0) 附:常用模拟键的键值对照表。
键盘键与虚拟键码对照表
字母和数字键 数字小键盘的键 功能键 其它键
键 键码 键 键码 键 键码 键 键码
A 65 0 96 F1 112 Backspace 8
B 66 1 97 F2 113 Tab 9
C 67 2 98 F3 114 Clear 12
D 68 3 99 F4 115 Enter 13
E 69 4 100 F5 116 Shift 16
F 70 5 101 F6 117 Control 17
G 71 6 102 F7 118 Alt 18
H 72 7 103 F8 119 Caps Lock 20
I 73 8 104 F9 120 Esc 27
J 74 9 105 F10121 Spacebar 32
K 75 * 106 F11122 Page Up 33
L 76 + 107 F12123 Page Down 34
M 77 Enter 108 -- -- End 35
N 78 - 109 -- -- Home 36
O 79 . 110 -- -- Left Arrow 37
P 80 / 111 -- -- Up Arrow 38
Q 81 -- -- -- -- Right Arrow 39
R 82 -- -- -- -- Down Arrow 40
S 83 -- -- -- -- Insert 45
T 84 -- -- -- -- Delete 46
U 85 -- -- -- -- Help 47
V 86 -- -- -- -- Num Lock 144
W 87
X 88
Y 89
Z 90
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57 ceoguang 发表于 2010-8-14 14:35
正巧路过,顺手回下,方便下后人默认是保持按下,如果要模似按下弹起则参考下面这个,这是发送WIN+D的示例 ...
谢谢ceoguang的分享
页:
[1]