我一直在研究这个问题一段时间,我似乎无法做到正确。我有一个C ++版本的软件我想在delphi中制作,但我不能让它在delphi中工作。我需要某种教程或指南,可以向我展示如何连接,读取和写入HID USB设备的数据。
答案 0 :(得分:6)
有关示例,请参阅Jan Axelson's USB page。他也写了一本书。 USB Complete
另见Robert Marquardt's HID controller suite for Delphi。
如果您使用的是Delphi 2009或更新版本,请按照回答中提供的链接进行搜索:using-hidcontroller-on-delphi-2010
答案 1 :(得分:3)
您可以使用QueryDosDevice获取完整的设备名称。在插入设备之前列出所有条目,然后列出列表中显示的新条目。 (我发现大多数HID设备在列表中出现两次,但尚未找到原因)。代码将包含“USB”“VID”“PID”和GUID。
如果前缀为'\\?\',则可以将此代码与CreateFile一起使用,并将此句柄用作串行端口(我个人更喜欢使用THandleStream)。代码可能如下所示:
var
h:THandle;
begin
h:=CreateFile(
PChar('\\?\'+MyPortName),
GENERIC_WRITE or GENERIC_READ,FILE_SHARE_WRITE or FILE_SHARE_READ,
nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if h=INVALID_HANDLE_VALUE then RaiseLastOSError;
MyPort:=THandleStream.Create(h);
SetCommTimeouts(h,MyFCommTimeouts);