C#中窗体屏蔽键盘按键

重写Wndproc示例:

static bool flag = false;
protected override void WndProc(ref Message m)
{
switch (m.Msg) {
case 0x0200: //WM_MOUSEMOVE
if (flag)
{
PostMessage(this.Handle, 0x00A1,new IntPtr(2),m.LParam);//这里需要导入 user32.dll
}
break;
case 0x201://WM_LBUTTONDOWN
flag = true;
break;
case 0x202://WM_LBUTTONUP
flag = false;

break;

default:
base.WndProc(ref m);
break;
}

[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern IntPtr PostMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);





虚拟键盘代码16进制值 对应键
VK_LBUTTON 01 鼠标左键
VK_RBUTTON 02 鼠标右键
VK_CANCEL 03 用于执行Ctrl+C或Ctrl+Break
VK_MBUTTON 04 鼠标中键
VK_BACK 08 Backspace键
VK_TAB 09 Tab键
VK_CLEAR 0C Clear键
VK_RETURN 0D Enter键
VK_SHIFT 10 Shift键
VK_CONTROL 11 Ctrl键
VK_MENU 12 Arl键
VK_PAUSE 13 Pause键
VK_CAPITAL 14 Capslock键
VK_ESCAPE 1B Ese键
VK_SPACE 20 SpaceBar键
VK_PRIOR 21 PgUp键
VK_NEXT 22 PgDn键
VK_END 23 End键
VK_HOME 24 Home键
VK_LEFT 25 Left Arrow键
VK_UP 26 Up Arrow键
VK_RIGHT 27 Right Arrow键
VK_DOWN 28 Down Arrow键
VK_SELECT 29 Select键
VK_EXECUTE 2B Execute键
VK_SNAPSHOT 2C PrintScreen键
VK_INSERT 2D Ins键
VK_DELECT 2E Del键
VK_HELP 2F Help键
VK_0 30 0键
… … …
VK_9 39 9键
VK_A 41 A键
… … …
VK_Z 5A Z键
VK_NUMAPD0 60 数字板0键
… … …
VK_NUMAPD9 69 数字板9键
VK_MULTIPY 6A 乘号键
VK_ADD 6B 加号键
VK_SEPARATOR 6C Separator键
VK_SUBSTRACT 6D 减号键
VK_DECIMAL 6E小数点键
VK_DIVIDE 6F 除号键
VK_F1 70 F1键
… … …
VK_F24 87 F24键
VK_NUMLOCK 90 NumLock键
VK_SCROLL 91 ScrollLock键

VK_CAPITAL Caps Lock
VK_ESCAPE Esc
VK_SPACE Space
VK_PRIOR Page Up
VK_NEXT Page Down
VK_END End
VK_HOME Home
VK_LEFT 向左方向键
VK_UP
VK_RIGHT
VK_DOWN
VK_DELETE Delete
VK_INSERT Inser
VK_NUMPAD0~VK_NUMPAD9 小键盘上的0-9键
VK_F1-VK_f12 F1-F12键

检测Caps Lock 键:

var
KeyStates:TKeyboardState;

begin

GetKeyboardState(KeyStates);
if Odd(KeyStates[VK_CAPITAL]) then
spBtnA.Caption := 'a'
else
spBtnA.Caption := 'A';

end;


C#实现全局鼠标按键屏蔽:Windows钩子原理与完整代码实战 在Windows桌面开发中,系统级输入控制是高级功能实现的基础。通过钩子(Hook)机制,开发者可以拦截并处理操作系统消息流,这一原理广泛应用于键盘监控、鼠标事件捕获等场景。其技术价值在于突破了应用层限制,实现了全局输入管理,为专业软件提供了底层控制能力。在工业控制上位机、演示系统、Kiosk信息亭及游戏开发等场景中,这种能力尤为关键。本文聚焦于使用C#和Windows API实现全局鼠标按键屏蔽,通过P/Invoke调用SetWindowsHookEx等核心函数,结合低级鼠标钩子(WH_MOUSE_LL) 阅读详情

相关推荐

C#实现键盘钩子屏蔽热键(附完整源代码)

C#实现键盘钩子屏蔽热键(附完整源代码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 497

c#实现锁屏及禁止键盘和鼠标

1.要实现锁定系统不让别人用,可以调用系统锁定API函数来实现 //引入API函数        [DllImport("user32 ")]        public static extern bool LockWorkStation();//这个是调用windows的系统锁定 在需要的时候直接写LockWorkStation();就可以啦!不信试试看! 2.API函数锁定键盘及鼠标 ...

weixin_33889665的博客 486

C# WinForm中屏蔽特殊功能键的技术实现

本文还有配套的精品资源,点击获取 简介:在Windows系统中,Win键、Ctrl+Alt+Del和Alt+F4等组合键具有特定的功能,如打开“开始”菜单、启动任务管理器和关闭窗口。在开发C# WinForm应用程序时,出于安全或特定需求可能需要屏蔽这些键。本文将介绍如何在C#中实现对这些特殊功能键的屏蔽和释放。其中,Win键可以通过设置键盘钩子实现屏蔽,而Alt+F4可以...

weixin_35752122的博客 2399

c# 让按钮只能被点击而不能被回车键和空格键触发

让按钮只能被点击而不能被回车键和空格键触发

mornwoo的专栏 1883

c# winform 鼠标、键盘消息拦截

vs2013 c# winform ,PreFilterMessage拦截本程序内的鼠标消息,获取鼠标与键盘钩子获取鼠标与键盘消息,或者取消键盘消息

C# Hook 屏蔽键盘按键

C#屏蔽键盘按键

c# 禁用鼠标与键盘

禁用鼠标与键盘有两种方法: 直接调用禁用API(缺点:按Ctrl+alt+delete,禁用会失效) ① 帮助类 public class BlockHelper { private static Logger<BlockHelper> log = new Logger<BlockHelper>(); priva...

Super毛毛虫的博客 1万+

C#利用钩子屏蔽ctrl+alt+delete键盘按钮

C#屏蔽键盘,利用HOOK钩子屏蔽键盘上的 ctrl+alt+delete组合键按钮,源码可直接编译,编译运行截图如图所示,程序在屏蔽指定按钮后可以解除屏蔽。 运行环境:Visual Studio2010

windows mobile 键盘钩子 屏蔽按键

封装好的类,直接添加到工程中就可以使用。/*这个类是用来屏蔽相关按键的,你可以new一个这个类的实例,然后调用相关的public方法就可以了,在C#程序中,你要在程序开始的位置调用,也就是Main函数中的窗体创建语句前调用开始钩子函数。在Main函数结束的位置再调用钩子关闭函数。将你想屏蔽的按键的键值添加到对应的位置,注释里面有解释,请查看。*/ public class KeyBoardH

生于忧患,死于安乐 3396

TL3562/3568内核驱动移植实战:解决无锡沐创N500L-AM4网口异常问题

本文详细介绍了在TL3562/3568平台上移植无锡沐创N500L-AM4网卡驱动的实战经验,重点解决了第四个网口通讯异常问题。通过升级驱动版本至rnpgbe-0.2.3,生成关键头文件并正确配置内核,最终实现四个网口稳定工作。文章还提供了性能优化建议和避坑指南,为类似硬件驱动移植项目提供参考。

weixin_28273593的博客 181

利用OrthoFinder做泛基因家族聚类分析

这条命令会将 Arabidopsis_thaliana.TAIR10.59_longest_trans.pep.fa 文件中的所有序列ID,去掉ID中的空格后面的部分,只保留 > 后第一个空格之前的基因ID,并将结果保存在 An1.fasta 文件中。muscle 是一种常用的多序列比对工具,用于基因组或蛋白质序列的比对。基因家族(Gene family),是来源于同一个祖先,由一个基因通过基因重复而产生两个或更多的拷贝而构成的一组基因,它们在结构和功能上具有明显的相似性,编码相似的蛋白质产物。

qq_64400864的博客 2759

C# 窗体应用程序制作虚拟键盘按键功能

这几天都在忙着写一个老板提出的傻逼功能,大致说说需求,就是要用用Ios的虚拟按键去控制PC的角色移动,如果是Unity来制作这个功能并不难弄,因为这个只需要通过网络层来传递控制信号,然后PC端进行响应即可。但是好死不死的项目需求用到的不是unity开发。项目用到的引擎是CE,这个引擎为了性能的是直接截取底层键盘信息进行响应,这样对我来说真是噩耗(PS:大部分游戏引擎都是直接获取底层键盘按键的信号来...

Bě9oniǎ 的博客 7563

从想法到零件:手把手拆解一个汽车功能如何从PRD写到SSTS和CTS

本文详细拆解了汽车电子需求从市场文档(MRD)到零部件技术规范(CTS)的完整流程,以雨天自动关窗功能为例,展示了PRD、SSTS和CTS的编写要点与交互设计。文章重点解析了系统分解的艺术和零部件落地的精确参数要求,为汽车电子工程师提供了从概念到实现的全流程实践指南。

weixin_30300225的博客 481

C#:键盘钩子的使用,实现键盘屏蔽 及 全局改键功能

1.引入 由于需要使用动态链接库及Process进程类,所以需要在项目中引入命名空间 using System.Diagnostics; using System.Runtime.InteropServices;   //调用操作系统动态链接库   2.键盘屏蔽 实现屏蔽键盘的功能,并且把按的任意的一个键的值显示在标签中。 如 按下了 space windows 等,不会产生键盘该有...

八步赶蝉 7632

《广告核心指标驱动的AI投放系统:从数据洞察到智能决策的全链路优化》

本方案通过构建广告核心指标驱动的AI投放系统,实现从数据采集到智能决策的全链路自动化。

专注Java领域与微服务架构,热爱人工智能与深度学习 1069

JaCoCo报告聚合的5个常见坑点排查指南:从单模块到多模块的完整避坑手册

本文详细解析了JaCoCo在多模块Maven项目中生成聚合报告时的5个常见问题,包括多模块报告聚合失效、覆盖率数据不一致、增量构建导致的覆盖率丢失等,并提供了具体的配置示例和解决方案。帮助开发者高效排查和解决JaCoCo报告聚合中的各种疑难杂症,提升代码覆盖率分析的准确性和效率。

weixin_27918373的博客 250

C# KeyDown事件

当需要持续、切换点击鼠标时,鼠标结合键盘的操作效率会更高,因此记录下窗体KeyDown和KeyUp时遇到的一些小问题 1、窗体的KeyPreview属性需要设置为true 2、将keyPreview值设置成true后按功能键和数字键都没有问题,但是按方向键任然没有触发KeyDown事件? 解决:覆盖默认的系统键处理方式,遇到方向键,则直接返回,系统不处理,这样键值就会被传递到窗体,触发KeyDown事件。 protected override bool ProcessD...

潘达小新 7399

RP Fiber Power 版本

RP Fiber Power的版本历史 该软件一直受到多年来广泛的发展计划,这大大扩展了其功能,以及用户界面的质量。 V1 这是第1个版本。 它仅限于光纤激光器和放大器的连续波计算,并且只能通过脚本进行控制。 V2 版本2引入了交互式表单。 至少对于更简单的模拟,现在可以简单地通过填写表单来工作,而V1必须通过脚本来控制。 例如,屏幕截图显示了输入某些信号参数的表单: 当您基于这些表单执行计算时,程序将根据您的表单输入自动编写脚本文件,然后执行该脚本。如果您需要编写脚本以获得更大的灵活性,可以稍后查看该脚

Asdmath的博客 2439

C#模拟鼠标和键盘操作

本文旨在自己动手实现一个类似于“按键精灵”的桌面软件。第一部分介绍了简单的模拟方式,但是有些软件能够屏蔽掉这种简单模拟带来的效果,因此第二部分将介绍如何从驱动级层面进行模拟。“游戏外挂一般分为三个级别:初级是鼠标、键盘模拟,中级是Call游戏内部函数,读写内存,高级是抓包,封包的“脱机挂”(完全模拟客户端网络数据,不用运行游戏)。用C#写外挂的不是很多,大部分是C++,主要原因是MS的C#目前不支...

FanJin的博客 2万+

华为OD机试双机位C卷-流水线(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 流水线,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 流水线。

qq_45776114的博客 2268

【Basis】Lumerical licence center 无法连接的问题

端口,我们需要确认该端口是否被其他程序占用。这里我们将介绍如何处理这一问题。后,今天电脑更新后我无法打开。终结占用该端口的程序后再次打开。

u011699626的博客 315

C# WinForm 键盘快捷键的使用

C# WinForm 键盘快捷键的使用WinForm中定义快捷键有多种方式,这里简单说明平时用得多的两种。 1、响应 Form窗体的 KeyDown 事件 2、重载 ProcessCmdKey 方法

禾木 4550

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

发送linux键盘消息,在C#程序中模拟发送键盘按键消息

using System.Runtime.InteropServices;引入键盘事件函数[DllImport("user32.dll")]public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);参数:bVk:定义一个虚拟键码。键码值必须在1~254之间。bScan:定义该键...

weixin_39849762的博客 918

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C#屏蔽Alt+F4组合键

在开发的软件不希望用户关闭的情况下,或者我们不想用户回到桌面,这时候我们就需要屏蔽windows键,或者Alt + F4 键等。 //1.将窗体的属性KeyPrieview设置为true //keypreview属性为true的时候,就可以响应键盘事件 //2.在窗体KeyDown事件中加如下代码 private void Form1_KeyDown(object sender, ...

weixin_30485379的博客 1733
上一篇: c#生成注册码
下一篇: C#中窗体屏蔽键盘按键
devgis
博客等级 码龄16年 52粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值