如果要模拟键盘按键持续的按住A代码://引用
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);//调用
keybd_event(65, 0, 0, 0);
结果只产生了一个A,也就是只按了一下我现在想要的结果是:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA........
请问代码该怎么写?(禁用Timer控件)

解决方案 »

  1.   

    while(true)
    {
       //keybd_event(...)
    }
      

  2.   

    你只运行一次keybd_event(65, 0, 0, 0);当然只能产生一个A,
    若想产生多少个A必须调用多少次keybd_event(65, 0, 0, 0).
      

  3.   

    这个我之前写魔兽显血改键的时候遇到过,与键盘的输入原理有关。在War3里,按下[键或]键是显敌方/我方的血,而用keybd_event按下一次之后,不模拟放开,就可以一直持续显血。但那是因为War3是以这两个按键是否放开来判断的,而并非以是否持续按住来判断。所以你必须要一直发送按下,才能模拟脉冲周期内键盘一直按住不放,达到AAAAAAAAAAAAA的效果。到控制面板里的键盘,看看重复率的设置就知道了。
      

  4.   

    模拟一直按住就只能一直发送按下信息,模拟放开的话,keybd_event难道不行?你先查查它的详细用法吧。
      

  5.   

    keybd_event(VK_CONTROL,0x45,KEYEVENTF_EXTENDEDKEY|0,NULL);