Q键连发。按住Q键则连发。松开则停止1。

Q键连发。按住Q键则连发。松开则停止1。  1楼. 检测 按键按下,则允许某一段后台程序开始执行。


2楼. 获得后台输入窗口的 Hwnd。

子窗口要取子窗口的Hwnd。DX软件绘图的窗口,要用DX按键模式。

.

用API函数,

ret = GetAsyncKeyState(81)来检测。

可以这样简单理解,

ret 小于 -1,则为按住。

ret 大于 -1,则不是按住。

.

检测到Q键按下,则循环开关=1,允许某一段后台程序开始执行。

检测到Q键弹起,循环开关=0,结束某一段后台程序的执行。

.

while(1)//循环

while(循环开关)//小循环

后台按键Q(Hwnd)

sleep(10)

end

//

sleep(100)

end


GetAsyncKeyState,

所在库:user32.dll。

<返回值>: Long

参数1: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。
.
.
前台按键的API,和后台按键的API是分开的。各有各的通道。

原文地址:https://www.cnblogs.com/champion8/p/5555582.html