V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ksc010
V2EX  ›  Linux

Linux 下如何从系统层面屏蔽输入设备,但是程序又可以读取该设备的信号

  •  
  •   ksc010 · 12 小时 28 分钟前 · 532 次点击

    需求是这样的, 需要用程序监听扫码枪的 输入 但是又不想这个设备的输入影响到终端

    7 条回复    2024-11-30 22:01:02 +08:00
    loading
        1
    loading  
       12 小时 25 分钟前   ❤️ 2
    用串口那种,不会变成键盘输入( HID)
    ksc010
        2
    ksc010  
    OP
       12 小时 4 分钟前
    @loading 我想链接到树莓派这类开发板上 ,只有 usb 输入,
    搜了下 串口好多是 那那种多针的 ,要是有 usb 串口的也行
    loading
        3
    loading  
       12 小时 0 分钟前
    串口只需要 4 根线 gnd vcc tx rx
    yolee599
        4
    yolee599  
       9 小时 9 分钟前 via Android
    可以用串口扫码枪,串口跟 USB 一样都是 4 根线的啊
    msmmbl
        5
    msmmbl  
       8 小时 44 分钟前   ❤️ 1
    查到 linux 有一个 EVIOCGRAB ioctl 调用,可以让一个进程独占某个输入设备
    PhaSelEza
        6
    PhaSelEza  
       8 小时 14 分钟前   ❤️ 1
    可以考虑用基于 evdev 的方案,比如 Interception Tools ( https://gitlab.com/interception/linux/tools ),我用它来改键。

    具体地,写一个 C 程序,拦截来自一个设备的所有的 event ,通过某种 IPC 方式传递给需要的程序。

    缺点是,程序需要处理的不是字符输入,而是 event 序列,处理起来挺难的。
    billccn
        7
    billccn  
       6 小时 44 分钟前
    一般扫码枪都有 SDK ,里面调用一下就可以让它停止模拟键盘,只跟 SDK 通讯。特别是需要扫码枪上面有指示灯或者扬声器需要反馈扫码成功与否的情况下必须要用 SDK.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 20:45 · PVG 04:45 · LAX 12:45 · JFK 15:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.