标签: hid

找出哪个进程具有USB设备句柄的独占锁定

我有一个使用CreateFile()API读取/写入USB设备的库.该设备恰好实现了HID设备配置文件,因此它与Microsoft的HID类驱动程序兼容.

系统上安装的其他一些应用程序是以读/写模式打开设备,没有共享模式.这会阻止我的库(以及消耗它的任何东西)使用该设备.我认为这是与HID兼容的设备 - 其他驱动程序软件(鼠标,控制器,PHIDGETS等)可能不合作.

无论如何,设备文件路径的形式如下:

1: "\\?\hid#hpqremhiddevice&col01#5&21ff20e7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".

2: "\\?\hid#vid_045e&pid_0023#7&34aa9ece&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".

3: "\?\hid#vid_056a&pid_00b0&col01#6&5b05f29&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".

我正在尝试使用代码打开它,例如:

//  First, open it with minimum permissions, this device may not be ours.
//  we'll re-open it later in read/write
hid_device_ref = CreateFile(
    device_path, GENERIC_READ,
    0, NULL, OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL, NULL);
Run Code Online (Sandbox Code Playgroud)

我已经考虑过像SysInternals这样的工具,如FileMon或Process Monitor.但我似乎无法报告上面列出的设备文件句柄的使用情况.

c++ usb winapi device hid

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

OS X的虚拟HID键盘

我正在尝试为Mac OS 创建一个虚拟蓝牙键盘客户端.这意味着我的Mac将作为BT KB.我在OS X中看到了蓝牙API(在ObjC中),我还发现了一个用于Mac的HID API(在C中)

为了完成这项工作,我理解我需要声明一个应该在SDP查询上广播的hid-keyboard-service.

  1. 如果我使用HID API声明HID服务,我的服务是否也在蓝牙上可见/广播?(这些文件似乎仅涉及关于USB的HID). - 在蓝牙和USB接口上都可以看到HID服务,而且底层连接对我来说是透明的吗?
  2. 是否有任何代码可以帮助我解决这个问题?我更喜欢ObjC,但似乎HID API只是C ...... :(

谢谢...!

macos bluetooth hid l2cap

7
推荐指数
1
解决办法
3056
查看次数

辅助键盘的OSX HID过滤器?

我想在第二个键盘上过滤键盘输入,并防止第二个键盘的键事件到达操作系统(自己处理).如何才能做到这一点?

keyboard macos cocoa hid

7
推荐指数
1
解决办法
1532
查看次数

USB HID在c#中的Read()上挂起

我正在尝试连接到USB数字刻度,代码确实连接到刻度scale.IsConnected,但是挂起scale.Read(250)250应该是超时(以毫秒为单位)但它永远不会从Read返回

我正在使用线程中的代码,除了由于新版本的Mike O Brien的HID库而导致的一个更改

public HidDevice[] GetDevices ()
    {
      HidDevice[] hidDeviceList;


      // Metler Toledo
      hidDeviceList = HidDevices.Enumerate(0x0eb8).ToArray();
      if (hidDeviceList.Length > 0)
    return hidDeviceList;

      return hidDeviceList;
    }
Run Code Online (Sandbox Code Playgroud)

我设法规模的工作,看看小李的答案在这里

.net c# usb winapi hid

7
推荐指数
1
解决办法
4871
查看次数

使用C++从OSX中的HIDManager获取鼠标事件

我正在将游戏从PC移植到osx,而我却陷入了输入事件的困境.主游戏窗口是一个与C++后端接口的可可应用程序.pc代码使用DirectInput和Windows消息来生成游戏理解的键盘和鼠标事件.

当我第一次启动端口时,我用碳事件处理替换了Windows消息,但是因为发现Cocoa应用程序不会触发碳事件.我做了一些阅读并发现了HIDManager似乎做了我想要的,可以从c ++访问.使用此处帖子中的信息使用IOHIDManager获取修改键事件我设法使键盘输入工作,但到目前为止还无法扩展示例代码以生成鼠标事件.代码如下:

 void myHIDCallback(void* context, IOReturn result, void* sender, IOHIDValueRef value)
{
    IOHIDElementRef elem = IOHIDValueGetElement(value);
    if (IOHIDElementGetUsagePage(elem) == 0x07)
    {


        // Keyboard events
        card32 scancode = IOHIDElementGetUsage(elem);
        if (scancode >= 4 && scancode <= 231)
        {
            long pressed = IOHIDValueGetIntegerValue(value);

            KEY_EVENT_DETAILS details = { KEY_EVENT_NONE, NUM_KEYS };

            for (card32 n=0; n<NUM_KEYS; ++n)
            {
                if (n_direct_input_mappings[n].direct_input_key == scancode)
                {
                    details.key_type = n_direct_input_mappings[n].key;
                    break;
                }
            }


            switch (pressed)
            {
                case 0:
                    details.event_type = KEY_EVENT_KEY_DOWN;
                    break;
                case 1:
                    details.event_type …
Run Code Online (Sandbox Code Playgroud)

c++ macos hid

7
推荐指数
0
解决办法
1415
查看次数

创建iOS BLE HID服务?

我试图创建一个实现HID服务的简单"Hello World"应用程序(即我的应用程序充当简单的HID按钮).

但是,在尝试此操作时,我The specified UUID is not allowed for this operation将服务添加到我的CBPeripheralManager实例后收到错误.添加任何"通用"(随机UUID)服务,以及心率监视器等其他内置工作正常,但我特别对HID服务感到好奇.

我找到了这个线程,表明对HID的支持已经改变了(但这似乎是在中心方面,这更有意义,因为iOS7本身支持HID).

文件没有提到任何服务应该是不支持的.可能是Apple在iOS7中删除了HID外设支持吗?如果是这样,这是在某处记录的吗?

hid ios core-bluetooth bluetooth-lowenergy

7
推荐指数
1
解决办法
4153
查看次数

在C中访问Apple Earbud Clicker控件

我想知道是否有任何方法可以让应用程序访问并在较新的耳机上收听Apple Earbud的Clicker控件,就像应用程序可以收听IR Receiver的自定义Apple Remote功能一样.我知道iTunes具有这种能力(更确切地说是iTunes Helper),因为当我双击播放/暂停点击器时iTunes会打开.我已经考虑过尝试从HID/IOServices访问点击器,但目前无法找到答案,如果有人能够阐明这个主题,我将不胜感激.

c objective-c hid

6
推荐指数
1
解决办法
210
查看次数

Windows HID设备名称格式

有多种方法可以检索HID设备的Windows"设备名称",GetRawInputDeviceInfo使用RIDI_DEVICENAME作为一种方法.

给出示例名称:

\?\ HID#VID_FEED&#PID_DEAD 6 3559c8ea&0� {378de44c-56ef-11D1-bc8c-00a0c91405dd}

我想知道这个字符串中的内容是否有任何文档?

\?\ HID#VID_AAAA&#PID_BBBB C&DDDDDD&E&#FFFF {GUID}

所以显而易见的是A(VID),B(PID)和最后的GUID.我想知道的是C,D,E和F究竟是什么?

看起来C和D是独一无二的,即使你插入了两个完全相同的HID设备,这对我的问题很有帮助,但如果我能确切地知道在每个操作系统的基础上如何确定它,我会感觉更舒服,或者至少它遵循一些已知的格式.

我一直在谷歌搜索疯狂试图解决这个问题,我错过了一些明显的东西吗?

提前致谢

windows device hid

6
推荐指数
1
解决办法
1453
查看次数

HID设备可以接收哪些数据?

我正在设计一个具有特殊功能的USB键盘.这样的HID设备可以从主机接收哪些信息?

我可以通过USB:

  • 从屏幕上的表格中读取数据?
  • 找出用户所使用的操作系统?
  • 找出是否有错误消息?
  • 甚至"知道"屏幕上可视化的内容,即选择了什么程序或者程序是窗口还是全屏?

谢谢!

keyboard hid

6
推荐指数
1
解决办法
1628
查看次数

Python evdev等效于OSX

我编写了一个python脚本,用于轮询evdev以获取HID条形码扫描器(模拟键盘):该脚本在Linux平台(Ubuntu)上运行良好.是否存在与evdev等效的OS X Python,它允许对现有python脚本进行轻微移植?

如果您具有Python经验并已针对HID设备输入进行了配置,请在响应中指明.

python macos hid barcode-scanner evdev

6
推荐指数
1
解决办法
978
查看次数