Articles of 隐藏

python阅读HID

我想做一个程序,从附加到Linux系统的HIDinput,并从这些程序生成MIDI。 我在MIDI方面没问题,但我在HID方面苦苦挣扎。 虽然这种方法工作正常(从这里采取): #!/usr/bin/python2 import struct inputDevice = "/dev/input/event0" #keyboard on my system inputEventFormat = 'iihhi' inputEventSize = 16 file = open(inputDevice, "rb") # standard binary file input event = file.read(inputEventSize) while event: (time1, time2, type, code, value) = struct.unpack(inputEventFormat, event) print type,code,value event = file.read(inputEventSize) file.close() 当有很多事件时,CPU使用率会很高; 特别是如果跟踪鼠标,大型移动占用我系统上近50%的CPU。 我猜是因为这个时候的结构。 那么,有没有更好的方法来做到这一点在Python? 我最好不要使用非维护或旧的库,因为我希望能够分发这个代码,并使它在现代发行版上工作(所以最终用户的包pipe理器中最终的依赖关系应该很容易得到)

如何将X11键码可靠地转换回扫描码或隐藏使用ID

几乎自我解决。 背景信息 linux的键码 以下是来自:linux_xmodmap_tutorial 扫描码→您的键盘发送到电脑的号码。 对于USB键盘,它是由USB标准定义的。 键码→Linux内核用来表示键(或鼠标button/滚轮)的号码。 Linux内核将扫描码转换为键码。 Keysym→一个键的名字。 keysym被X11应用程序接收。 我可能是错的,但什么sudo evtest打印似乎像sudo evtest设置1,因为/dev/input/event*输出是相似的,至less我的系统扫描码和linux键码大多是相同的。 X11键码 xev命令打印keycode和keysym,我观察到keycode不会改变,不pipe我使用的键盘布局如何; qwerty和dvorak布局产生不同的keysym,但是相同的keycode。 尽pipe如此,它不是一个Linux密钥代码,也不隐藏使用ID,也不是任何一个扫描码集; set1,set2和set3。 如何生成的Linux键码? 根据维基(我不能张贴链接): /etc/udev/hwdb.bin将扫描码转换为键码。 显而易见的是: 该wiki说有非默认的* .hwdb文件可以编译到hwdb.bin hwdb.bin可以检测不同的键盘,并且可能会将扫描码转换为不同的键码。 对于ubuntu,我能find的唯一的hwdb文件是: /etc/udev/hwdb.d/61-keyboard-local.hwdb ,这几乎是空的。 所以,默认情况下,ubuntu会保留默认的扫描码,并将其用作我相信的键码。 如何生成X11键码 有些黑客给我们留下了一个线索: https : //www.charvolant.org/doug/xkb/html/index.html /usr/share/X11/xkb/keycodes下的扫描码到键码映射规则文件(哪一个正在使用是问题) setxkbmap -print -verbose 10打印 Trying to load rules file ./rules/evdev… Trying to load rules file /usr/share/X11/xkb/rules/evdev… 所以,上面的文件应该是控制Xkb的加载行为(Linux改变很多,所以不要期待在未来会一样)。 例: setxkbmap -print […]

使用g ++的符号可见性

我在Linux / Mac下编译了一个C ++库,其中隐藏了符号。 我已经使用_ 属性 _((visibility(“hidden”)))为我所有的类和编译选项(-c -O2 -fPIC -MMD -MP -MF)。 在Mac下,使用MacDependencies(http://code.google.com/p/macdependency/),工作完成得很好,因为我只看到我的出口(我实际上看到了前后的差异)。 但是,我注意到使用nm我仍然可以看到符号的所有名称。 这发生在Mac和Linux下。 这是为什么? 有什么办法可以避免这种情况? 最好的问候和感谢,乔

你怎么能拥有一个隐藏设备的所有权?

我想要拥有已经插入的隐藏设备的所有权,消耗它的输出,同时防止其他人(X11或terminal)消耗它。 如果我能帮上忙,我不想假装成为terminal,而是要垄断一个特定的隐藏或字符设备。 这个想法是,一些隐藏设备可能被x /terminal识别为鼠标/键盘,但第二个鼠标或键盘可以用于其他的东西,但要做到这一点,你需要确保他们不发送虚假input到开放的terminal。 有没有人有任何见解,如何做到这一点?

需要拦截HID键盘事件(然后阻止它们)

我有一个注册为HID设备的RFID USB设备(或多或less的USB键盘)。 我正在寻找一种方法来捕获这个input,并在它碰到正常的键盘事件处理程序(并输出10位数的RFID代码到控制台)之前阻止/过滤它。 我当然必须专门捕捉这个设备,并保持真正的键盘input(或传递)。 我最初的想法是阻止UDEV中的设备(所以usbhid / event / kbd内核模块没有绑定到它),并写下我自己的这个设备的基本驱动程序 – 但我不知道从哪里开始,或者如果甚至会工作。 如果我写了一个事件filter模块,它可以与事件驱动程序一致并捕获(然后过滤)来自事件驱动程序的适当input,那么什么是好的(我不确定是否可以完成这样的事情) RFID单位,但让其他一切通过。 我想这样的模块不需要太多的代码,而且会是最实用的。 帮帮我? [编辑:我应该补充说,Xorg不安装 – 控制台] cat /proc/bus/input: I: Bus=0003 Vendor=0419 Product=0912 Version=0100 N: Name="NewRoad Sem. NewRoad System PS2 Interface" P: Phys=usb-0000:00:1d.3-2/input0 S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/input/input20 U: Uniq= H: Handlers=sysrq kbd mouse0 event3 B: PROP=0 B: EV=120017 B: KEY=70000 0 0 e080ffdf01cfffff fffffffffffffffe B: REL=103 […]

是否有可能使计算机像蓝牙HID设备一样运行?

是否有可能使计算机像蓝牙HID设备一样运行? 也就是说,给定一台带有标准USB键盘的本地机器,其他设备可以发现这台机器并将其用作蓝牙键盘。 我想创build一个Linux或OS X应用程序(或者使用现有的应用程序,尽pipe我找不到),但是我不确定从哪里开始,或者甚至可能。 所以: 我所描述的是可能的吗? 有没有现有的应用程序,我所描述的? 如果没有应用程序已经存在(我假设没有),有蓝牙库或绑定,这将有助于? (我使用当今stream行的大多数语言都非常舒服,所以我更喜欢一个最直接适合这个任务的库,只要它在linux或OS X中可用)。 如果没有上述任何一项,蓝牙规格看起来非常密集。 是否有具体的指南或其他出发点适用于我可以阅读的问题? 我意识到,这样的应用程序很可能需要窃取正常的键盘input,可能提供了一些类似KVM的热键,用于在向主机操作系统提供input和通过蓝牙将input发送到连接的设备之间进行切换,但是我正在考虑这个问题超出了这个问题的范围。

使用Python获取鼠标三angular洲! (在Linux中)

我知道Linux从/ dev / input / mouse中发出一个9位2的恭维数据。 我也知道你可以通过/ dev / hidraw0获取数据,其中hidraw是你的USB设备从HID发出的原始数据。 我知道发送的数据是运动的三angular洲(位移),而不是位置。 通过我还可以通过“cat / dev / input / mice”查看乱码数据。 我的问题是: 你能告诉我用Python语言怎么读取这些数据? 我真的喜欢用简单的整数来获取这些数据。 但事实certificate很难。 真正的问题是阅读该死的数据。 有没有办法读取位和做算术? (目前我不担心与root用户有关的问题,请假定脚本是以root身份运行的。) (我的主要参考是http://www.computer-engineering.org/ps2mouse/ )

在Windows操作系统上的文件夹设置“隐藏”属性?

试图隐藏文件夹没有成功。 我发现这个: import ctypes ctypes.windll.kernel32.SetFileAttributesW('G:\Dir\folder1', 2) 但它对我没有用。 我究竟做错了什么?

在Windows下重命名USB HID设备

我为使用通用HID类的USB设备编写了一个固件,用于与主机进行通信。 将设备连接到PC时,会显示固件中的硬编码string,但在驱动程序安装结束后(使用通用Windows驱动程序),设备名称将更改为通用的“USBinput设备”。 我如何重新命名设备?

PHP窗口创build隐藏的文件

是否有可能使用php(xampp)在窗口上创build隐藏的文件/文件夹? 如果是,怎么样?