小编Lui*_* A.的帖子

C# 中的 Linux 键盘钩子

我的问题是我正在尝试运行专门为 Linux 发布的独立 C# 控制台应用程序,旨在在 Raspberry 上运行。

使用场景是在公共交通中,乘客将使用 RFID 钥匙卡,我将通过传感器读取 ID,该传感器被识别为键盘。

由于该应用程序必须始终运行,它将作为服务运行,这就是为什么我需要一个键盘挂钩,这样无论发生什么,该服务都会读取传感器。

我想知道是否有类似这个例子的东西适用于linux(警告:它是一个http网站):Low Level Global Keyboard Hook

这是代码,因此您无需访问该网站:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Input;
 
namespace DesktopWPFAppLowLevelKeyboardHook
{
    public class LowLevelKeyboardListener
    {
        private const int WH_KEYBOARD_LL = 13;
        private const int WM_KEYDOWN = 0x0100;
        private const int WM_SYSKEYDOWN = 0x0104;
 
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);
 
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)] …
Run Code Online (Sandbox Code Playgroud)

c# linux raspberry-pi

5
推荐指数
1
解决办法
1245
查看次数

标签 统计

c# ×1

linux ×1

raspberry-pi ×1