找回密码
 加入
搜索
查看: 5846|回复: 12

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

[复制链接]
发表于 2009-4-15 19:51:04 | 显示全部楼层 |阅读模式
手头只有个本api函数大全,
但,在autoit里调用 api 函数的 格式 似乎略微有不同,
试了下  下面的语句 是按下 ctrl 键(0x11)的功能。
    Local $user32 = DllOpen("user32.dll")
  DllCall($user32, "long", "keybd_event", "BYTE", 0x11,"BYTE","","DWORD","","DWORD","" )

但是怎么也没弄明白 up 这个键 该怎样写呢?
发表于 2009-4-15 21:05:01 | 显示全部楼层
 楼主| 发表于 2009-4-15 21:24:54 | 显示全部楼层

回复 2# pusofalse 的帖子

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

楼上老兄 能不能 给个
keybd_event   函数 在 autoit 里调用的 例子。
一个down,一个up 就可以了,
先谢谢了!
发表于 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位值。
 楼主| 发表于 2009-4-16 15:06:45 | 显示全部楼层
谢谢,这个函数说明我也有。
就是不知道在 autoit 里该怎么写。
找不到例子。
发表于 2009-8-30 20:42:54 | 显示全部楼层
keybd_event 在 WinAPI.au3 里面找不到,应该怎么用 #include来调用呀?
发表于 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
发表于 2009-9-1 02:44:46 | 显示全部楼层
非要用这个么 用这个还不如用send  反正大家都是全局的
发表于 2010-3-17 22:08:13 | 显示全部楼层
好东西。。。
发表于 2010-3-18 00:29:43 | 显示全部楼层
回复 6# onestone01

WinAPIEx.au3里有
发表于 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)
发表于 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       F10  121     Spacebar    32
      K   75       *   106       F11  122     Page Up     33
      L   76       +   107       F12  123     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
发表于 5 天前 | 显示全部楼层
ceoguang 发表于 2010-8-14 14:35
正巧路过,顺手回下,方便下后人默认是保持按下,如果要模似按下弹起则参考下面这个,这是发送WIN+D的示例 ...

谢谢ceoguang的分享
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-4 15:56 , Processed in 0.199547 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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