我的问题是我正在尝试运行专门为 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)