gpt4 book ai didi

delphi - 如何对特定 HID 设备执行硬件重置?

转载 作者:行者123 更新时间:2023-12-03 14:39:11 27 4
gpt4 key购买 nike

目标

使用 Delphi 应用程序对特定 USB 加密狗 ANT、HID 设备执行硬件重置。

<小时/>

1。 CM_Request_Device_Eject 函数尝试

我尝试使用 CM_Request_Device_Eject函数并且它正确弹出我的设备,但在某些系统上不会自动再次启动它。

这是我用于设备弹出的代码:

str := PChar(GetDeviceID(DeviceInfoData.DevInst));
status := CM_Locate_DevNodeA(dev, str, CM_LOCATE_DEVNODE_NORMAL);
status := CM_Request_Device_EjectA(dev, nil, '', 0, 0);

使用此功能时,如果我的设备在弹出后没有自动启动,是否有办法确保我的设备能够启动?

<小时/>

2。 SetupDiRestartDevices 函数尝试

作为替代方案,我尝试使用 SetupDiRestartDevices功能,此功能可以正确重置我的设备,但除了重置所有 HID 设备(例如鼠标、键盘等)外,此功能需要管理员权限才能工作:

rslt1 := SetupDiRestartDevices(hDevInfo, DeviceInfoData);

如何使用此功能仅重置我的设备?

<小时/>

问题

是否有通用的推荐方法来执行特定 USB HID 设备的硬件重置?或者有没有办法解决以上问题?

最佳答案

硬重置不是您可以自己完成的事情......要对某些设备进行硬重置,该特定设备必须支持硬重置...硬重置的方式因设备而异。有些设备上有一个按钮可以进行硬重置。有些需要一段代码。大多数公司都针对特定设备发布了一组 AT 命令列表。

例如.. here是制造商针对特定设备发布的 at 命令列表

this在这种情况下可以帮助你......如果没有继续谷歌搜索。

关于delphi - 如何对特定 HID 设备执行硬件重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com