NETでマウスとキーボードメッセージをブロックする方法?Win 32 NETがお手伝いします。

NETでマウスとキーボードメッセージをブロックする方法?Win 32 NETがお手伝いします。

Win 32 NETは、Win 32 APIの. NETパッケージライブラリです。

最后更新 2022/01/20 14:12
明月心技术学堂
预计阅读 2 分钟
分类
.NET
标签
.NET C# インターセプトキーボード インターセプトマウス

Win 32 NETは、Win 32 APIの. NETパッケージライブラリで、以下を含む。

  1. Win 32 APIの一般的なNETカプセル化
  2. マウス、キーボード、ホットキーのフックモジュール、
  3. キーボード入力文字(各種文字文字、異なる言語の文字に対応)、マウスのクリック移動スクロールなどの操作をシミュレート
  4. システムハードウェア情報照会

Win 32 Netライブラリの使い方は?Win 32 NetのNugetパッケージ管理で検索できます。

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");
Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读
同分类 / 同标签 2026/02/07

AOTの使用経験

プロジェクトの最初から、新しい機能が追加されたり、新しい構文が使用されたりするたびに、AOTリリーステストを行うという良い習慣を身につける必要があります。

继续阅读