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