delphi – 如何执行特定HID设备的硬件复位?

前端之家收集整理的这篇文章主要介绍了delphi – 如何执行特定HID设备的硬件复位?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目的

使用Delphi应用程序执行特定USB加密狗ANT,HID设备的硬件复位.

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);

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

2. SetupDiRestartDevices功能尝试

作为一种替代方案,我试图使用SetupDiRestartDevices功能,这一个正确地重置了我的设备,但是除了复位所有的HID设备(如鼠标,键盘等),并且此功能需要管理员权限工作:

rslt1 := SetupDiRestartDevices(hDevInfo,DeviceInfoData);

如何才能使用此功能重设设备?

是否有通用的推荐方式来执行特定USB HID设备的硬件复位?还是有办法解决上述任何问题?

解决方法

硬复位不是你自己做的事情
要对某些设备进行硬重置,该特定设备必须支持硬复位…
硬盘复位方式因设备而异.
一些设备上有一个按钮进行硬复位.有些需要一段代码.大部分公司为特定设备发布了一套AT命令列表.

例如..
here是制造商为具体设备发布的命令的列表

this可以帮助你在这种情况下…如果不保持谷歌搜索.

猜你在找的Delphi相关文章