Einzelnen Beitrag anzeigen

hathor
(Gast)

n/a Beiträge
 
#7

AW: Über alle USB Anschlüsse iterieren, um ein bestimmtes Gerät zu finden

  Alt 25. Jul 2013, 08:21
...Da aber nicht immer sicher gestellt ist, dass das Gerät auch immer den gleichen Laufwerksbuchstaben bekommt, muss ich wissen welchen Laufwerksbuchstaben es hat, wenn es angeschlossen ist. Dazu müsste ich über alle USB Ports iterieren und bei jedem gucken, ob es das gewünschte Gerät ist.

Delphi-Quellcode:
function DriveExists(DriveByte: Byte): Boolean;
begin
  Result := GetLogicalDrives and (1 shl DriveByte) <> 0;
end;

function FileDirExists(const FileOrDir: String): Boolean;
var
  FindFileData: TWIN32FindData;
begin
  FindFileData.dwFileAttributes := INVALID_FILE_ATTRIBUTES;
  Windows.FindClose(FindFirstFile(PChar(FileOrDir), FindFileData));
  Result := FindFileData.dwFileAttributes = INVALID_FILE_ATTRIBUTES;
end;

Function FindGPS: String;
var dirName: String; i : Integer;
begin
dirName:= 'F-Hathor'; //Dir, das sonst nirgendwo existiert ausser im GPS-Empfänger
Result:='GPS-Empfänger NICHT gefunden.';
  for i:=0 to 25 do
    begin
      if DriveExists(i) then
// if DirectoryExists(dirName) then //geht bei mir nicht !!! UAC ???
        if FileDirExists(dirName) then
        begin
          Result:= 'GPS-Empfänger gefunden bei '+ IntToStr(i);
        end;
    end;
    Form1.Label1.caption:=Result;
end;
  Mit Zitat antworten Zitat