找call写call吧 关注:96贴子:951
  • 5回复贴,共1

求一个Q键连发。按住Q键则连发。松开则停止。

只看楼主收藏回复

求一个Q键连发。按住Q键则连发。松开则停止。
//
触不可及的她丶: 回复 检测 按键按下,则允许某一段后台程序开始执行。


IP属地:广东来自手机贴吧1楼2016-05-17 19:58回复
    获得后台输入窗口的Hwnd。
    子窗口要取子窗口的Hwnd。DX软件绘图的窗口,要用DX按键模式。
    .
    检测到Q键按下,则循环开关=1,允许某一段后台程序开始执行。
    .
    检测到Q键弹起,则循环开关=0,结束某一段后台程序的执行。
    .
    while(1)//循环
    while(循环开关)//小循环
    后台按键Q(Hwnd)
    sleep(10)
    end
    //
    sleep(100)
    end


    IP属地:广东来自手机贴吧2楼2016-05-17 19:59
    回复
      GetAsyncKeyState,所在库user32。
      它带有返回值和只带一个参数。
      〈ret〉, Long
      a1,integer
      //
      自对GetAsyncKeyState函数的上一次调用以来,
      如键 已被按过,则位0设为1;否则设为0。
      //
      如键 目前处于按下状态,则位15设为1;如抬起,则为0。
      //
      GetAsyncKeyState函数返回的是指定虚拟键瞬时的状态值,它有四种返回值:
      0---键当前未处于按下状态,而且自上次调用GetAsyncKeyState后改键也未被按过;
      1---键当前未处于按下状态,但在此之前(自上次调用GetAsyncKeyState后)键曾经被按过;
      -32768(即16进制数&H8000) --- 键当前处于按下状态,但在此之前(自上次调用GetAsyncKeyState后)键未被按过;
      -32767(即16进制数&H8001) --- 键当前处于按下状态,而且在此之前(自上次调用GetAsyncKeyState后)键也曾经被按过。
      //
      //
      附:
      VK_LBUTTON 鼠标左键 0x01
      VK_RBUTTON 鼠标右键 0x02
      VK_CANCEL Ctrl + Break 0x03
      VK_MBUTTON 鼠标中键 0x04
      VK_BACK Backspace键 0x08
      VK_TAB Tab键 0x09
      VK_RETURN 回车键 0x0D
      0x是C语言中的16进制数。
      16进制数0D,是10进制数的13。


      IP属地:广东来自手机贴吧3楼2016-05-17 20:19
      回复
        ret 〈 -1,则Q键按住。
        ret 〉-1,则Q键非按住。


        IP属地:广东来自手机贴吧4楼2016-05-17 20:43
        回复
          指狗为鸡: 回复 可以做到, 前提是软件模拟。挂钩子判 断按键来源。能判断出是真 实键盘按键还是软件模拟一 切好办。
          驱动级的就无法判断了。


          IP属地:广东来自手机贴吧5楼2016-05-18 10:34
          收起回复