如何使用keybd_event()发送字符 = 和 _ 啊? ( 积分: 10 )

  • 主题发起人 主题发起人 xywxl
  • 开始时间 开始时间
X

xywxl

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使用keybd_event()发送字符 &nbsp;= &nbsp;和 &nbsp;_ &nbsp; 啊?<br><br>搞了好久搞不定,输出的 都是 &nbsp; + &nbsp;和 &nbsp; -
 
如何使用keybd_event()发送字符 &nbsp;= &nbsp;和 &nbsp;_ &nbsp; 啊?<br><br>搞了好久搞不定,输出的 都是 &nbsp; + &nbsp;和 &nbsp; -
 
没有吧?好像这是模拟按键的问题,很容易呀!“=”的键值是187,将下面的mykey变为187就行了。<br>然后使用<br>keybd_event( mykey , MapVirtualKey( mykey , 0 ), 0 , 0 );<br>keybd_event( mykey , MapVirtualKey( mykey , 0 ), KEYEVENTF_KEYUP , 0 );<br>而需要发送“_”需要首先按下shift键然后发送“-”键值就行(键值是109)<br>具体就是<br>keybd_event( VK_shift, MapVirtualKey( VK_shift, 0 ), 0 , 0 );<br>keybd_event( mykey , MapVirtualKey( mykey , 0 ), 0 , 0 );<br>keybd_event( mykey , MapVirtualKey( mykey , 0 ), KEYEVENTF_KEYUP , 0 );<br>keybd_event( VK_shift, MapVirtualKey(VK_shift, 0 ), KEYEVENTF_KEYUP , 0 );
 
谢谢你,我在网上也找了模拟键值,不过好象不全,怎么也没找到=的键值,下面是我找的键值,你那有更全面一点的么,有的话贴一下,好不好:)?<br>     键盘键与虚拟键码对照表<br><br>      字母和数字键     数字小键盘的键       功能键         其它键 <br>      键   键码     键   键码       键   键码     键      键码 <br>      A   65       0   96        F1   112     Backspace    8 <br>      B   66       1   97        F2   113     Tab       9 <br>      C   67       2   98        F3   114     Clear      12 <br>      D   68       3   99        F4   115     Enter      13 <br>      E   69       4   100       F5   116     Shift      16 <br>      F   70       5   101       F6   117     Control     17 <br>      G   71       6   102       F7   118      Alt       18 <br>      H   72       7   103       F8   119     Caps Lock    20 <br>      I   73       8   104       F9   120     Esc       27 <br>      J   74       9   105       F10  121     Spacebar    32 <br>      K   75       *   106       F11  122     Page Up     33 <br>      L   76       +   107       F12  123     Page Down    34 <br>      M   77       Enter 108       --   --     End       35 <br>      N   78       -   109       --   --      Home      36 <br>      O   79       .   110       --   --      Left Arrow   37 <br>      P   80       /   111       --   --      Up Arrow    38 <br>      Q   81       --   --       --   --      Right Arrow   39 <br>      R   82       --   --       --   --      Down Arrow    40 <br>      S   83       --   --       --   --      Insert      45 <br>      T   84       --   --       --   --      Delete      46 <br>      U   85       --   --       --   --      Help       47 <br>      V   86       --   --       --   --      Num Lock     144 <br>      W   87          <br>      X   88      <br>      Y   89      <br>      Z   90      <br>      0   48      <br>      1   49      <br>      2   50       <br>      3   51       <br>      4   52       <br>      5   53       <br>      6   54       <br>      7   55       <br>      8   56       <br>      9   57  
 
用这么复杂吗?自己编写一个程序,比如用一个Tedit控件,另外用Tspinedit的Value来,用postmessage(edit1.Handle,wm_keydown,spinedit1.Value ,0);<br> spinedit1.Value :=spinedit1.Value +1;<br>然后你什么键值都可以找出来了。
 
=对应的虚拟键码是187<br>_应该是shift + - &nbsp; &nbsp;-对应的是189<br><br>你用VkKeyScan查一下就可以知道某个键对应的虚拟键码了,比如<br>showmessage(inttostr(VkKeyScan('=')));
 
对了 我的是笔记本,和普通的101键盘的键对应的值可能有出入(大键盘与小键盘值不一样),不过发送这个值也能得到正确的字符
 
谢谢二位,发分拉:)
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
926
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
后退
顶部