gaoyuan22 发表于 2009-4-15 19:51:04

请教 关于API函数 keybd_event 的问题。

手头只有个本api函数大全,
但,在autoit里调用 api 函数的 格式 似乎略微有不同,
试了下下面的语句 是按下 ctrl 键(0x11)的功能。
    Local $user32 = DllOpen("user32.dll")
DllCall($user32, "long", "keybd_event", "BYTE", 0x11,"BYTE","","DWORD","","DWORD","" )

但是怎么也没弄明白 up 这个键 该怎样写呢?

pusofalse 发表于 2009-4-15 21:05:01

http://msdn.microsoft.com/en-us/library/ms927178.aspx

gaoyuan22 发表于 2009-4-15 21:24:54

回复 2# pusofalse 的帖子

键盘键值表?
不是问这个。

楼上老兄 能不能 给个
keybd_event   函数 在 autoit 里调用的 例子。
一个down,一个up 就可以了,
先谢谢了!

seominho 发表于 2009-4-16 09:11:13

函数原型;VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);
  参数:
  bVk:定义一个虚据拟键码。键码值必须在1~254之间。
  bScan:定义该键的硬件扫描码。
  dwFlags:定义函数操作的名个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位。
  KEYEVENTF_EXETENDEDKEY:若指定该值,则扫描码前一个值为OXEO(224)的前缀字节。DEYEVENTF_KEYUP:若指定该值,该键将被释放;若未指定该值,该键交被接下。dwExtralnfo:定义与击键相关的附加的32位值。

gaoyuan22 发表于 2009-4-16 15:06:45

谢谢,这个函数说明我也有。
就是不知道在 autoit 里该怎么写。
找不到例子。

onestone01 发表于 2009-8-30 20:42:54

keybd_event 在 WinAPI.au3 里面找不到,应该怎么用 #include来调用呀?

iftodo 发表于 2009-8-30 21:33:30

本帖最后由 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

sxd 发表于 2009-9-1 02:44:46

非要用这个么 用这个还不如用send反正大家都是全局的

pingfan5888 发表于 2010-3-17 22:08:13

好东西。。。

netegg 发表于 2010-3-18 00:29:43

回复 6# onestone01

WinAPIEx.au3里有

ceoguang 发表于 2010-8-14 14:35:13

正巧路过,顺手回下,方便下后人
_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)

ceoguang 发表于 2010-8-14 14:37:25

附:常用模拟键的键值对照表。

                      键盘键与虚拟键码对照表

      字母和数字键   数字小键盘的键       功能键         其它键
      键   键码   键   键码       键   键码   键      键码
      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

y32510729 发表于 2024-11-29 22:39:01

ceoguang 发表于 2010-8-14 14:35
正巧路过,顺手回下,方便下后人默认是保持按下,如果要模似按下弹起则参考下面这个,这是发送WIN+D的示例 ...

谢谢ceoguang的分享
页: [1]
查看完整版本: 请教 关于API函数 keybd_event 的问题。