.NET下如何拦截鼠标、键盘消息?Win32NET来帮你

Win32NET是一个Win32API的.NET下封装的类库,包含:

1: 常用win32的API的net封装

2:鼠标、键盘、热键hook钩子模块,

3:模拟键盘输入文字(支持各种字符文字、不同语言的文字)、模拟鼠标点击移动滚动等操作

4.系统硬件信息查询

如何使用该Win32Net库呢?可以在nuget包管理搜索Win32Net,

Install-Package Win32Net -Version 1.2.0

或者直接添加引用,

<PackageReference Include="Win32Net" Version="1.2.0" /

如何使用鼠标钩子:

首先实例化一个鼠标钩子对象,然后定义鼠标事件回调方法,启动监听即可。当不需要继续监听鼠标信息,则可以取消监听。

win32.Hooks.MouseHook mouseHook = new Hooks.MouseHook();//实例化鼠标钩子对象
mouseHook.LeftDown += MouseHook_LeftDown;//鼠标左键按下的事件监听回调方法
mouseHook.Start();//开始监听
mouseHook.Stop();//停止监听

如何使用键盘钩子:

键盘钩子与鼠标钩子使用类似,首先实例化一个键盘钩子对象,然后定义键盘事件回调方法,启动监听即可。当不需要继续监听键盘信息,则可以取消监听。

Win32.Hooks.KeyboardHook keyboardHook = new Win32.Hooks.KeyboardHook();keyboardHook.OnKeyUp += KeyboardHook_OnKeyUp;keyboardHook.Start();keyboardHook.Stop();

如何注册全局快捷键

//WPF 窗口句柄
//IntPtr hwnd =   new WindowInteropHelper(WPFWindow对象).Handle;
//winform 窗口句柄IntPtr hwnd = this.Handle;//实例化热键对象,需要一个句柄,用于接收消息Win32.Hooks.SystemHotKey systemHotKey = new Win32.Hooks.SystemHotKey(hwnd);
//热键id,要求唯一int hotKeyId = 5000;
//注册Alt+Q快捷键
systemHotKey.AddHotKey(hotKeyId, Win32.KeyModifiers.Alt, Keys.Q,() =>{MessageBox.Show("你按了Alt+Q快捷键");}
);
//注册ESC快捷键systemHotKey.AddHotKey(hotKeyId + 1, Win32.KeyModifiers.None, Keys.Escape,() =>{this.Close();});

如何获取系统硬件信息

SystemInfo systemInfo = new SystemInfo();
richTextBox1.AppendText("操作系统:" + systemInfo.operatingSystem.Caption + "\n");
richTextBox1.AppendText("系统ID:" + systemInfo.operatingSystem.SerialNumber + "\n");
richTextBox1.AppendText("操作系统平台:" + systemInfo.operatingSystem.OSLevel + "\n");
richTextBox1.AppendText("系统安装时间:" + systemInfo.operatingSystem.InstallDate + "\n");
richTextBox1.AppendText("系统最近启动时间:" + systemInfo.operatingSystem.LastBootUpTime + "\n");
richTextBox1.AppendText("系统时间:" + systemInfo.operatingSystem.LocalDateTime + "\n");
richTextBox1.AppendText("CPU:" + systemInfo.processor.Name + "\n");
richTextBox1.AppendText("CPU厂商:" + systemInfo.processor.Manufacturer + "\n");
richTextBox1.AppendText("CPU序列号:" + systemInfo.processor.SerialNumber + "\n");
richTextBox1.AppendText("物理内存:" + systemInfo.memory.TotalPhysicalMemory + "\n");

喜欢的小伙伴们可以关注下方公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之如何快速在文本里面写入内容

一、创建文件 touch file 二、写入内容 echo "hello word">>file 图片举例 还有 echo "hello">file 是把之前的内容覆盖&#xff0c;然后内容只有hello 如图&#xff1a; 最后&#xff1a; 无论是echo "hello">file 还是 echo&quo…

css实战手册第四版 pdf_你真的了解CSS继承吗?看完必跪

也许你瞧不起以前的 css &#xff0c;但是你不该再轻视眼下的 css 。近年来 css 的变量系统已逐步得到各大浏览器厂商支持&#xff0c;自定义选择器等强势袭来&#xff0c;嵌套系统/模块系统也在路上...为了更好的掌握 css 这门语言&#xff0c;很有必要把之前零零散散的 css 知…

hibernate级联操作详解

2019独角兽企业重金招聘Python工程师标准>>> 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) l Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作&#xff0c;常用的cascade: none,all,save-update,delete, lock,ref…

Oracle数据库的备份与恢复

Oracle数据库有三种标准的备份方法&#xff0c;它们分别是导出&#xff0f;导入&#xff08;EXP/IMP&#xff09;、热备份和冷备份。导出备件是一种逻辑备份&#xff0c;冷备份和热备份是物理备份。一、 导出&#xff0f;导入&#xff08;Export&#xff0f;Import&#xff09;…

关于Windows® API Code Pack for Microsoft® .NET Framework

相比之前的操作系统&#xff0c;Window 7&#xff08;or Vista&#xff09;提供了很多新特性&#xff0c;我们在应用实现中可以利用这些特性来提升用户体验。 这些特性主要包括以下几个方面&#xff1a; Shell EnhancementsDirectX TechnologiesApplication Restart and Recove…

出门就背他了!可伸缩的背包,自由变大变小,还有防盗功能!

▲ 点击查看出门能不背包就不背包&#xff0c;几乎是小爆身边每个男生的人生信条。不背包时&#xff0c;两手空空一身轻&#xff0c;潇洒有型。但一旦到了必须背包&#xff0c;比如五一外出回家或旅游的时候&#xff0c;男同胞们翻箱倒柜找出来的背包&#xff0c;大多都是这种双…

C#实现网页加载后将页面截取成长图片 | Playwright版

前言如何将网页生成预览图&#xff1f;要实现这个功能&#xff0c;可以用WebBrowser组件模拟浏览器&#xff0c;或者使用系统浏览器访问网页&#xff0c;再进行截图操作。但是&#xff0c;这样需要编写大量的控制代码。工欲善其事&#xff0c;必先利其器&#xff01;利用Playwr…

Android安全与逆向之Dex动态加载

&#xfeff;&#xfeff;Dex动态加载是为了解决什么问题&#xff1f; 在Android系统中&#xff0c;一个App的所有代码都在一个Dex文件里面。 Dex是一个类似Jar的存储了多个Java编译字节码的归档文件。 因为Android系统使用Dalvik虚拟机&#xff0c;所以需要把使用Java Comp…

python链接mysql报错2003_Python连接Mysql报错问题解决

import MySQLdb #打开数据库 db MySQLdb.connect("127.0.0.1","root","123456","testdb",3306) #使用corsor()方法获取操作游标 cursor db.cursor() #使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") #使…

死锁示例代码

死锁产生实例&#xff0c;两个线程两个互斥锁&#xff0c;每个线程占有一个互斥锁&#xff0c;同时想获得另一个互斥锁则会产生死锁。解决方案&#xff1a;  1.一次占有全部资源  2.每个线程占有锁的顺序是一致的。比如都是同时占有A&#xff0c;然后占有B锁。#include <…

从服务器上的数据库备份到本地

可以直接在数据库进行操作&#xff1a;把需要备份的数据库选择生成脚本。生成脚本有一个高级选项&#xff0c;可以设置数据库架构跟数据。然后在本地新建一个跟备份数据库一样的数据库名称&#xff0c;进行运行脚本。就可以了。如果不新建一个数据库。就会报错。转载于:https:/…

Android之在ubuntu上用aapt查看apk的名字以及相关信息

第一步:如何快速找把手机里面的apk文件本地 如果我们不知道apk的包名,我们先打开需要的apk,然后再打开终端,输入下面命令获取这个apk的包名 adb shell dumpsys activity 查看当前apk的包名,有了包名,然后我们可以快快速获取apk,参照我的另外一篇博客 http://blog.csdn.n…

nodejs项目_多人群聊实现其实很简单:Nodejs+WebSocket+Vue轻松实现Web IM

点击右上方红色按钮关注“web秀”&#xff0c;让你真正秀起来前言在《Nodejs WebSocket简单介绍及示例 - 第一章》中简单的介绍了&#xff0c;Nodejs WebSocket的使用方法及作用&#xff0c;今天就用它来搭建一个简单的聊天室功能。1、NodejsWebSocket创建后台服务器功能 2、…

支付宝 .NET SDK 报错:RSA签名遭遇异常,请检查私钥格式是否正确。

AlipaySDKNet 是 .NET 平台下用于对接支付宝支付的官方 SDK。Alipay SDK for .NET 让您不用复杂编程即可访问支付宝开放平台开放的各项能力&#xff0c;SDK可以自动帮您满足能力调用过程中所需的证书校验、加签、验签、发送HTTP请求等非功能性要求。其 Nuget 链接如下&#xff…

交友软件上的两种网友类型......

1 轻轻松松月入五千的方法&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 像极了期末复习的你&#xff08;via.段子楼&#xff0c;侵删&#xff09;▼3 听说你想要中国的熊猫▼4 听说学校附近有野人出没&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼5…

meta标签的作用

meta标签共有两个属性&#xff0c;它们分别是http-equiv属性和name属性&#xff0c;不同的属性又有不同的参数值&#xff0c;这些不同的参数值就实现了不同的网页功能。 一.http-equiv属性 定义和用法&#xff1a;把 content 属性连接到 HTTP 头部&#xff0c;它可以向浏览器传…

iCloud7_Next Steps

下一步Next Steps 在此次指导中&#xff0c;你创建了一个复杂的iOS应用&#xff0c;使用iCloud保存它的文档。设计一个支持 iCloud 的应用程序&#xff0c;涉及很多决策&#xff0c;即使这样&#xff0c;本教程只触及表面&#xff08;浅层&#xff09;。当你继续了解集成 iClou…

operation 多线程

2.Cocoa Operation 优点&#xff1a;不需要关心线程管理&#xff0c;数据同步的事情。Cocoa Operation 相关的类是 NSOperation &#xff0c;NSOperationQueue。NSOperation是个抽象类&#xff0c;使用它必须用它的子类&#xff0c;可以实现它或者使用它定义好的两个子类&#…

Android插件化开发基础之Java动态代理(proxy)机制的简单例子

一、代码 package com.sangfor.tree;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;interface ProxyInterFace { public void proxyMethod(); } class TargetObject implements ProxyInterFace { publ…

python获取键盘事件_50-用Python监听鼠标和键盘事件

PyHook是一个基于Python的“钩子”库&#xff0c;主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32&#xff0c;如同名字所显示的&#xff0c;PyWin32只能运行在Windows平台&#xff0c;所以PyHook也只能运行在Windows平台。 关于PyHook的使用&…