标签: hid

在Mac OS X中禁用鼠标加速

首先,这是用户空间问题:在Mac OS X @超级用户中禁用鼠标加速

总结一下:我想在Mac OS X上有线性鼠标响应.也就是说,没有加速; 一个可调节的恒定的 pixels pointer moves / meters mouse moved比率.

我不知道该怎么做.(嗯,不是真的,但最好从头开始.)我应该写一个鼠标驱动程序吗?一个启动程序?点击即可设置调整器?首选项窗格?

我希望我的解决方案尽可能简单,通用且不引人注目,因此某些标准可能是:

  • 适用于Snow Leopard(10.6.5)及更高版本 - 很久以后,除非API的一个重要部分被弃用
  • 适用于老鼠但不适用于触摸板,平板电脑,魔棒......(或者可配置?)
  • 可以很容易地被其他想要同样事物的人应用/运行(我们所有42个人都在这个星球上)

我是一个相当有经验的C程序员,无论是在用户还是内核领域(在Linux和Windows中),但对Mac OS X或Darwin几乎一无所知.所以任何事情都是值得赞赏的("不能在没有Apple证书的情况下分发驱动程序")但是一些文档/参考文章会让我走得很远("Darwin的下一代鼠标曲线编辑API和示例").

我知道这个问题有点开放,但我甚至不知道什么的解决方案可行.提前致谢.

编辑:虽然我已经问过两个问题来解决同样的问题,但这是另一个问题的程序对应问题.(请参阅此问题的第一句.)在这里,我正在尝试创建自己的解决方案,可以这么说,使用 - 我不知道 - 一些HID API?一个司机?"开放当前用户的prefs文件并将此设置更改为此"的解决方案可能应该发布在另一个问题上,但请注意,这样的解决方案可能不存在.

macos mouse hid

56
推荐指数
1
解决办法
8万
查看次数

如何在linux上捕获原始HID输入?

我想要完成的简短版本:我有一个脚踏板(INFINITY-IN-USB-1,如果有任何兴趣),它是作为通用HID设备实现的,我希望它表现为控制和alt Linux上的密钥.我正在寻找X级别的东西,即不仅仅是单个程序.

更长的版本:我通过调用dll RegisterRawInputDevices和GetRawInputData并在隐藏的窗口中监听输入,在Windows XP中使用此设置.所有这些都是通过相当简单的Autohotkey脚本完成的(如果有人有兴趣可以在这里发布).关键是,不需要任何额外的驱动程序等; 只需要本机Windows dll.

我希望这个设置在linux上工作(更具体地说是Ubuntu下的Gnome,但我偶尔会使用其他发行版/窗口管理器,所以我很感激X级别的解决方案).这个脚踏板不会将自己注册为键盘甚至操纵杆,而是作为具有UsagePage 12,用法3的HID设备.我注意到最新的Ubuntu可以检测并使用Microsoft Natural Keyboard上的收藏夹键,它也可以注册为HID设备*.我使用与使用脚踏板相同的方法在Windows上使用这些键(即没有捆绑软件).所以我认为这个踏板的东西也适用于linux,但问题是如何?

[我是Linux上较低级别的新手,所以请慷慨地提供引言或教程的链接.)

*对于那些不知情的人,Microsoft Natural Keyboard会同时注册为常规键盘和通用HID设备.如果没有某些应用程序(例如捆绑的应用程序)知道如何解释HID输入,常规键将起作用,但是最喜欢的键和特殊功能键是无用的.


为了澄清,linux并没有将踏板压力视为输入.它确实识别USB设备,但xev没有为踏板按下输出.我已经看到有人在WINE下成功使用踏板进行转录软件的报道,但这必须以Windows的方式工作,并没有给出我想要的东西(这使得踏板看起来像所有原生linux应用程序的键盘).我想知道是否需要一些低级linux键盘驱动程序?


这里有更多信息:如果我在终端发出这个

cat /dev/usb/hiddev0
Run Code Online (Sandbox Code Playgroud)

(dev/usb/hiddev0是我的踏板),我得到与我的踏板按下相对应的原始代码.那是一个开始.我知道那些原始代码意味着什么:二进制,0001,0010,0100分别对应每个踏板,踏板按压的组合发送那些二进制数的组合,以及释放任何踏板仍然被按下的踏板触发输入(如果全部踏板向上,0000发送).

如何让X听取dev/usb/hiddev0并将原始代码翻译成可能是一个特殊的键码,以便我可以用xmodmap或其他东西映射它们?

linux hid hid-device

31
推荐指数
3
解决办法
8万
查看次数

是否有可能使计算机充当蓝牙HID设备?

是否有可能使计算机充当蓝牙HID设备?也就是说,如果本地机器插有标准USB键盘,其他设备可以发现这台机器并将其用作蓝牙键盘.

我想创建一个linux或OS X应用程序(或使用现有的应用程序,虽然我没有找到),它可以像上面描述的那样运行,但我不知道从哪里开始,或者甚至可能.

所以:

  • 我所描述的可能吗?
  • 是否存在我所描述的现有应用程序?
  • 如果没有应用程序已存在(我假设没有),是否有蓝牙库或绑定有帮助?(我很高兴使用当今大多数流行的语言,所以我更喜欢一个最适合任务的库,只要它在linux或OS X中可用.)
  • 如果没有上述任何一项,蓝牙规格看起来非常密集.是否有适用于我能阅读的问题的具体指南或其他起点?

我意识到这样的应用程序很可能需要窃取正常的键盘输入,可能提供一些类似KVM的热键,用于在向主机操作系统提供输入和通过蓝牙将输入发送到连接设备之间切换,但我正在考虑这个问题超出了这个问题的范围.

linux macos bluetooth hid

31
推荐指数
1
解决办法
2万
查看次数

用于HID(USB)的.NET API?

.NET(C#)中是否有用于使用USB HID(人机接口)设备的API?

.net c# api usb hid

25
推荐指数
2
解决办法
5万
查看次数

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

我想拥有一个可能已经插入的隐藏设备的所有权,消耗它的输出,同时防止其他人(X11或终端)消耗它.

如果我可以提供帮助,我不想伪装成终端,而是垄断某个特定的隐藏或角色设备.这个想法是一些隐藏设备可能被x /终端识别为鼠标/键盘,但是第二个鼠标或键盘可以用于其他东西,但要做到这一点,你需要确保它们不会发送虚假输入到开放式终端.

有没有人对如何做到这一点有任何见解?

unix linux terminal input-devices hid

23
推荐指数
1
解决办法
4407
查看次数

一组明确的外观字母和数字为用户输入

是否有现有的字母数字子集更容易阅读?特别是,是否有一个子集具有较少的视觉模糊字符,通过删除(或等同)某些字符,我们减少了人为错误?

我知道"视觉模糊"在某种程度上是一种表达方式,但很明显D,O和0都是相似的,1和I也是相似的.我想最大化alpha-numerics集的大小,但最大限度地减少可能被误解的字符数.

我所知道的唯一先例是加拿大邮政编码系统,它删除字母D,F,I,O,Q和U,并创建该子集以帮助邮政系统的OCR过程.

我最初的想法是只使用大写字母和数字如下:

A
B = 8
C = G
D = 0 = O = Q
E = F
H
I = J = L = T = 1 = 7
K = X
M
N
P
R
S = 5
U = V = Y
W
Z = 2
3
4
6
9

这个问题可能难以与给定的类型面分开.所选字体中字符的独特性可能会显着影响任何两个字符的潜在视觉模糊性,但我希望在大多数现代字体中,等同的上述字符将具有相似的足够外观以保证等同它们.

我对以上的想法感激不已 - 以上方程是否合适,或者是否有更多应该等同的字符?小写字符会更合适吗?

typography character hid

21
推荐指数
4
解决办法
1万
查看次数

在Mac上读取和写入USB(HID)中断端点

我正在尝试与一个相当具体的USB设备进行通信,并开发Windows和Mac代码.

该设备是带有HID接口(3级)的USB设备,带有两个端点,一个中断输入和一个中断输出.设备的性质使得只有在从主机请求数据时才从输入端点上的设备发送数据:主机向其发送设备在其输入中断端点上响应的数据.将数据传输到设备(写入)要简单得多......

Windows的代码非常简单:我获得了设备的句柄,然后调用ReadFile或WriteFile.显然,大部分底层异步行为都被抽象出来了.它似乎工作正常.

然而,在Mac上,它有点粘.我尝试了很多东西,没有一个已经完全成功,但这里有两件似乎最有希望的东西......

1.)尝试通过IOUSBInterfaceInterface访问设备(作为USB),遍历端点以确定输入和输出端点,并(希望)使用ReadPipe和WritePipe进行通信.不幸的是,我无法打开界面,返回值(kIOReturnExclusiveAccess)注意到某些东西已经让设备独占打开.我已经尝试使用IOUSBinterfaceInterface183,因此我可以调用USBInterfaceOpenSeize,但这会导致相同的返回错误值.

---更新
7/30/2010 --- 显然,Apple IOUSBHIDDriver会早期与设备匹配,这可能会阻止打开IOUSBInterfaceInterface.从一些挖掘中可以看出,防止IOUSBHIDDriver匹配的常见方法是编写具有更高探测分数的无代码kext(内核扩展).这将提前匹配,阻止IOUSBHIDDriver打开设备,理论上应该允许我打开接口并直接写入和读取端点.这没关系,但我更希望不必在用户机器上安装额外的东西.如果有人知道一个可靠的选择,我会感谢这些信息.

2.)将设备作为IOHIDDeviceInterface122(或更高版本)打开.为了读取,我设置了一个异步端口,事件源和回调方法,在数据就绪时调用 - 当数据从输入中断端点上的设备发送时.但是,要写入数据 - 设备需要 - 来初始化响应我找不到办法.我很难过.setReport通常写入控制端点,而且我需要一个不期望任何直接响应,没有阻塞的写入.

我在网上看了看并尝试过很多东西,但没有一个能给我带来成功.有什么建议?我不能使用很多Apple HIDManager代码,因为其中大部分是10.5+,我的应用程序也必须在10.4上运行.

c++ macos usb hid kernel-extension

20
推荐指数
1
解决办法
2万
查看次数

在本地模拟USB /蓝牙HID设备以注入事件?

是否可以模拟连接到Android的USB或蓝牙设备?

我想创建一个能够在本地模拟HID设备的应用程序.我的意思是:该应用程序应该让Android相信USB /蓝牙HID设备已连接.我希望这可以让我的应用程序在全球范围内注入触摸事件.无论如何都要模拟(虚拟)设备?请注意,我并不关心设备,我只想使用内置的HID输入支持.

我知道很多人已经问过触摸事件注入,但这种方法似乎有点不同.我也没有想用这个测试的目的,因此InstrumentationTestCase之类也无济于事.

植入设备可能是一个选项,虽然我也可以设想让我的最终用户手动安装一个专门签名的应用程序(根据/sf/answers/1171595841//sf/answers/1603196591/这有效,但它将是特定于设备的).

我知道:

  1. 在android上模拟一个鼠标输入 - 这个人似乎是在他自己的应用程序中做到这一点,虽然他的问题没有得到解答;)

  2. http://www.pocketmagic.net/2013/01/programmatically-injecting-events-on-android-part-2/#.U58SqfldVHV -需要root.有没有人成功使用过这个?此外,该解决方案似乎再次特定于设备.

  3. 蓝牙+模拟鼠标 - 这不是我想要的.手机本身不应该是HID设备,而是使用(虚拟创建的)设备.同样如下:https: //stackoverflow.com/a/8174973/2923406

请注意,我希望把我的手机到任何种类的HID设备.

android hid touch-event

19
推荐指数
1
解决办法
5153
查看次数

在Windows上与usb HID设备通信的最佳USB库是什么?

图书馆应该;

- 易于使用,几行客户端代码应该完成很多
- 尽可能与平台无关.(如果将来是其他平台的端口) -
有C++绑定.
- 成熟稳定

我还希望通过回调通知大多数HID事件.

我考虑过以下替代方案:

*libhid - (不幸的是?)这是GPL,不能在我的应用程序中使用.
*WDK - 对我来说似乎有点低级别.我不需要那种控制
*atusbhid - 这有一个适当的抽象级别,但与Windows消息传递循环紧密相关

你们中的任何人都有其他选择吗?

c++ windows usb hid

18
推荐指数
2
解决办法
3万
查看次数

滚动我自己的Windows操纵杆HID驱动程序?

我有一个USB操纵杆,我想为它编写自己的HID驱动程序.值得注意的是,我希望在Windows收到操纵杆输入和我的应用程序收到输入事件通知之间注入延迟.我还想改变我的应用程序所获得的操纵杆的身份.我从来没有为Windows编写驱动程序,更不用说HID驱动程序了.任何人都可以向我提供有关如何做到这一点的建议或指示吗?

usb hid joystick

17
推荐指数
1
解决办法
9810
查看次数