Einzelnen Beitrag anzeigen

Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#2

Re: USB Devices suchen, editieren

  Alt 25. Sep 2008, 08:05
Hallo,

Hatte einen ähnlichen Anwendungsfall. Es gibt von JEDI eine USBView Demo. Das ist sehr aufschlussreich.

Ich habe es dann so gemacht:

Delphi-Quellcode:
function GetNumberOfConnectedBFs(): Byte;
const
  ConnectorGUID = '{AB03120F-995C-4A47-9BB6-9549EC8945D2}';
var
  GUID : PGUID;
  Buffer : array[0..1023] of TCHAR;
  Descriptionstr : string;
  PnPHandle : HDEVINFO;
  DevData : TSPDevInfoData;
  DeviceInterfaceData : TSPDeviceInterfaceData;
  Success : LongBool;
  BufSize : DWORD;
  DevNumber : Integer;


begin
  Result := 0;

  LoadSetupApi;
  LoadConfigManagerApi;
  GetMem(GUID, SizeOf(TGUID));
  GUID^ := StringToGUID(ConnectorGUID);
  SetupDiGetClassDescription(GUID^, @Buffer[0], Length(Buffer), BufSize);
  Descriptionstr := PTSTR(@Buffer[0]);

  PnPHandle := SetupDiGetClassDevs(GUID, nil, 0, DIGCF_PRESENT);
  if PnPHandle = Pointer(INVALID_HANDLE_VALUE) then
  begin
    FreeMem(GUID);
    Exit;
  end;

  DevNumber := 0;

  repeat
    DeviceInterfaceData.cbSize := SizeOf(TSPDeviceInterfaceData);
    DevData.cbSize := SizeOf(DevData);
    Success := SetupDiEnumDeviceInfo(PnPHandle, DevNumber, DevData);
    if Success then
      begin
        Inc(DevNumber);
      end;
  until not Success;

  SetupDiDestroyDeviceInfoList(PnPHandle);

  UnloadConfigManagerApi;
  UnloadSetupApi;

  Result := DevNumber;
end;
Funktioniert eigentlich recht gut.
Müsstest eigentlich nur die entsprechende ConnectorGUID einfügen...
  Mit Zitat antworten Zitat