Q键连发。按住Q键 则连发。松开则停止2。 
用软件模拟可以做到。

挂低级键盘钩子,判断按键的来源。
能判断出是真实键盘按键,还是模拟按键,则就可以做了。

拦截真实按键,放行模拟按键。

驱动级的就无法判断了。

指狗为鸡。

//

哪个API,能判断出真实按键/模拟按键?

//

setwindowshookex,在回调函数里可以判断真实按键还是软件模拟。有些游戏就是靠这方法屏蔽模拟按键的

指狗为鸡 14:18

//

按键精灵的

普通模拟,你HOOK哪个函数。

超级模拟,HOOK哪个函数?

剑仙十号 15:28

//

低级键盘钩子,wh_keyboard_ll,(13)

当然这只能判断是不是软件模拟,硬件戓超级是无法判断的

指狗为鸡 15:52

2楼. 全局键盘钩子,回调函 数的参数3,是结构体。

可以先写成整数型。

我们来看看该结构在MSDN中的解释

//

Public Structure KeyboardHookStruct

Dim vkCode As Integer

Dim ScanCode As Integer

Dim Flags As Integer

Dim Time As Integer

Dim DwExtraInfo As Integer

End Structure

//

其中各个参数意义如下:

VkCode:按键的虚拟键码。键盘上的每个按键对应一个虚拟键码

ScanCode:硬件的扫描码

Flags:按键消息的详细信息。是一些标识位的组合

Time:时间。

DwExtraInfo:扩展到按键消息的信息

3楼. 结构体的成员3,Flags

是一个八位的二进制,各个位的标识信息如下:

从右到左数起。

0位:扩展键的标识位。

1表示该键是扩展键;0表示不是。

1位~3位:保留位,一般为0。

4位:消息类型的标识位。

1表示消息是模拟的;0表示消息是真实的。

5位:Alt键的标识位。

1表示Alt是按住的;0表示Alt键没有被按下

6位:保留位,一般是0

7位:按键的状态标识位。1表示按键是弹起的,0表示按键是按住的

在易里面,二进制数都做成 十进制数。

二进制  10000,十进制是16。16就表示按键消息是模拟的。

if(键盘.Flags==16)

traceprint("模拟按键。")

//

Flags参数的第四位,能区分消息的类别。

当使用物理键盘,是真实的按键消息,这位是0;

当用keybd_event函数,模拟按键消息时,这个进制位是1。

4楼. 调用API函数RtlMoveMemory,,

把回调函数,参数3的数据,复制到定义好的结构体中。

.

复制之前,,参数3的数据是在内存中的。

//

在定义RtlMoveMemory这个dll前,先要定义一个结构体1。

vkCode 整数型

ScanCode 整数型

Flags 整数型

Time 整数型

DwExtraInfo 整数型

//

定义RtlMoveMemory这个dll。

查询MSDN,参数1是结构体指针。

参数1的数据类型,定义为上一步的结构体1。勾选传址。

//

在程序集窗口,先定义一个局部变量。键盘

调用API函数RtlMoveMemory,,

把回调函数,参数3的数据,复制到定义好的结构体中。

.

复制之前,,参数3的数据是在内存中的。

5楼. 之后在回调函数中,判断键盘.Flags 的值就好了。

键盘.Flags = 0 //真实按键。拦 截。

键盘.Flags = 16//二进制数是 10000,模拟按键。放行。

剑仙十号 5-22 16:45 回复 
6楼. 之后在回调函数中,

if(键盘.VkCode==81 && 键盘.Flags = 0)

traceprint("Q键。真实按住。")

//拦截。

发送Q键的模拟按键。

返回(1)

end
.
.
前台真实按键的API,和前台模拟按键的API是一样的。但可以判断出真实或模拟。

转载于:https://www.cnblogs.com/champion8/p/5555549.html

Q键连发。按住Q键 则连发。松开则停止2。相关推荐

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

    Q键连发.按住Q键则连发.松开则停止1.  1楼. 检测 按键按下,则允许某一段后台程序开始执行. 2楼. 获得后台输入窗口的 Hwnd. 子窗口要取子窗口的Hwnd.DX软件绘图的窗口,要用DX按键 ...

  2. RK920C键盘出现输入del键,会输出q信息,输入Ins键会输出1信息

    问题描述 RK920C键盘出现输入del键,会输出q信息,输入Ins键会输出1信息 问题分析 尝试了键盘重置(Fn+Esc)大概5s钟,键盘灯闪烁三次,恢复出厂,问题依然存在,更换其他电脑,问题依然存 ...

  3. php 按键连击,写了一个独立按键 支持组合键、单键长按,连发功能的例子

    你好,我在调试你贴上的程序,发现单个按键都正常,为什么组合键就不正常呢?代码如下: #include #define K_STOP                (1< #define K_ST ...

  4. [软件工具]左键连发工具左键连点工具使用教程

    左键连发软件是一个可以点击一下自动左键连续点击指定次数的软件,比如你设置20次,当你点击一次松开鼠标后,会自动左键连续点击20次.具体使用教程为,我们打开软件 我们可以设置连发次数,默认15次,你可以 ...

  5. java的robot一直按住某个键_SHIFT键在CAD中使用技巧

    在CAD中可以设置CTRL.ALT.SHIFT与字母组合的快捷键,例如CTRL+S是保存,而CTRL+SHIFT+S则是另存,SHIFT键除了可以跟其他键一起定义成组合键以外,还有很多特殊的用途,这里 ...

  6. 电脑ctrl和ALT经常键自动按住--答案是QQ2012的Bug

    电脑ctrl和ALT经常键自动按住  答案是QQ2012的问题 我相信大家最近应该都有这样的问题吧,最少我们公司大部分人都有这样的问题. 到低是那里的问题呢? 最近(应该说是从安装了最新的QQ2012 ...

  7. Unity 按住A键更改鼠标光标样式

    按住A键更改为准星样式 首先自己抠图抠出个准星,要png格式的图片 然后在准星的Inspector面板里更改Texture Type为Cursor (一定要修改,不然会显示不正确) 然后创建脚本挂载到 ...

  8. 按住Alt键加小键盘数字出现的特殊字符对照表

    其实Windows操作系统有一个功能,是按住Alt键再加上右边数字小键盘中的数字,会输出相应的字符.这个方法的原理是输入的数字其实是 一串ASCII码,出来的是对应于该ASCII码的字符,如果数字超过 ...

  9. 按住Shift键右击鼠标打开命令行窗口

     其实Windows有个不显眼的功能是这样的,同样还是以定位到D盘foo文件夹下的一个bar子文件夹为例,在bar文件夹里,将鼠标置于空白处,按住Shift键不放,同时右击鼠标,这时在出来的右键菜 ...

最新文章

  1. 第二篇 Entity Framework Plus 之 Query Future
  2. php 重定向到https,php – Laravel 5 – 重定向到HTTPS
  3. Spring Cloud实战小贴士:Zuul统一异常处理(三)【Dalston版】
  4. 易优cms红色风格春节年货礼品公司网站模板源码
  5. Centos中关闭tty以及禁止ipv6
  6. Things3 for mac(Mac任务管理神器)
  7. IC卡读写器c++builder源代码续
  8. windows常见电脑蓝屏的解决办法
  9. 基于卫星高度计海面高度异常资料获取潮汐调和常数方法及应用matlab代码
  10. 实验室只有1080显卡,老师还想让发深度学习论文怎么办?
  11. php视频怎么转mp4,PHP实现将视频转成MP4并获取视频预览图的方法_php技巧
  12. 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程【转】...
  13. 【洛谷P3651】展翅翱翔之时
  14. 低调,中国的FPGA到底有多强?
  15. access 分组序号_二级Access数据库备考笔记之报表排序和分组
  16. Python代码实现两张图片的拼接
  17. PowerPro总纲及序言
  18. [ 程序员那些事 ]程序员下班后从不关电脑 ?
  19. Vue+flask物业缴费-车位电梯消防排水空调 报修信息管理系统django python java
  20. dedecm建站优化技巧教程六大步骤详解

热门文章

  1. 老子云数字孪生智慧工厂,助力企业降本增效
  2. SAP BO/BusinessObjects视频培训教程
  3. 特斯拉是l3还是l2_自动驾驶L2、L3级,到底是什么?竟引得BBA联手开发
  4. c语言计算跳水分数,C语言判断五位选手跳水名次
  5. 续:遭遇www.6781.com劫持浏览器和Worm.Snake.a等
  6. supertuxkart_android赛车游戏移植
  7. 关于MPU9250的六轴DMP和九轴MPL
  8. 专业课C语言(郝斌)
  9. 关于有源滤波器和无源滤波器
  10. 当当、卓越、京东商城货物配送流程揭秘