KeyPress捕捉按键时会先停顿一下再持续,如何判断键盘始终按下?

qq_33905362 2016-10-25 03:31:16
当按下一个键(如Y),用KeyPress来捕捉Y始终按下(如 i++,并反复刷新显示 i 的值)
就如同在windows写字板中一样,按键按下时会生效一下,然后总是要停顿1秒左右,才会持续生效
用KeyPress捕捉也会有这个表现
请问如何用在WinForm程序中实现,按下一个键之后,程序不停顿,而是从按下就开始一直能够反映出该按键被按下,(即 i 一直++,中间不停顿)

感觉好像要调用Win API键盘钩子什么的?请问有没有.net自己的办法?如果非要这样,请问需要先补充什么知识?例如C#如何调用Win API吗?
麻烦给个最简单的例子,目前不懂如何用C#调用Win API。

非常感谢
...全文
822 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dai78 2016-10-27
  • 打赏
  • 举报
回复
按下事件时全局变量赋一个值,弹起事件时在赋一个值,根据这个值就可以判断了
D56233577 2016-10-25
  • 打赏
  • 举报
回复
1楼正解,键盘、鼠标都是可以设置的。
圣殿骑士18 2016-10-25
  • 打赏
  • 举报
回复
KeyDown、KeyUp配合使用即可。KeyDown被触发,而KeyUp没有被触发,就代表一直按下中
  • 打赏
  • 举报
回复
程序中,应该捕获 KeyDown、KeyUp 的时候,不要胡乱使用 KeyPress。不要把“按下”偷换概念为“反复按下”。 不要纠结什么“c#如何调用 WINAPI”的无厘头的话。如果需要调用调用 windows SDK,你自然能搜到答案。如果不明白原理而去有目的地去搜索,盲目空想也是没用。
  • 打赏
  • 举报
回复
普通pc键盘的驱动本身就控制了触发间隔时间、或者说一秒钟触发多少次。pc键盘根本没有你说的“写字板(设备)1秒钟”那么长的时间,也就是几十毫秒。这个是windows去设置的。 有许多键盘(或者输入设备)是故意设计为避免连击的。例如银行密码输入小键盘就应该避免连击,因为使用者毕竟不是熟练地录入人员、容易出错。 因此不要以为键盘都是可以连击的,有些从底层硬件上就不会连续触发按键。除非用户抬起按键之后重新按下,才发出第二次按键信号。
泡泡龙 2016-10-25
  • 打赏
  • 举报
回复
我记得以前DOS命令里面是有修改第二个按键默认间隔的,好像是mode
内容概要:本文提出了一种基于混沌系统与DNA编码的复合型彩色数字图像加密方案,旨在解决传统加密算法密钥空间小、抗干扰能力弱的问题。该方案利用混沌系统生成伪随机序列,结合DNA碱基编码规则对图像RGB三通道进行像素级置换与混淆扩散,实现高安全性加密;解密过程则通过逆操作精确还原原始图像。文章重点对该方案进行了系统的抗噪声与抗裁剪性能分析,实验结果表明,该算法在面对高斯噪声、椒盐噪声以及不同面积、位置的裁剪攻击时均表现出优良的鲁棒性,能够有效恢复图像核心信息,适用于网络传输与私密存储等复杂环境下的图像安全保护。; 适合人群:具备一定信号处理或信息安全基础知识,从事图像加密、信息隐藏、多媒体安全等相关领域的科研人员及研究生。; 使用场景及目标:①用于提升数字图像在网络传输中的安全性,防止窃听与篡改;②适用于医疗影像、军事测绘、商业机密等对图像安全性和抗干扰性要求较高的应用场景;③为研究高鲁棒性图像加密技术提供理论支持与实验参考。; 阅读建议:建议读者结合Matlab代码实践加密与解密流程,并自行设计不同强度的噪声与裁剪干扰实验,深入理解混沌置乱与DNA编码在提升算法鲁棒性方面的协同机制。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧