Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Laufwerksbuchstaben aus Laufwerksnamen ermitteln (https://www.delphipraxis.net/99102-laufwerksbuchstaben-aus-laufwerksnamen-ermitteln.html)

Brakeman 6. Sep 2007 20:39


Laufwerksbuchstaben aus Laufwerksnamen ermitteln
 
Hallo,
ich habe ein Navigationsgerät, dass als Laufwerk im Explorer erscheint wenn es angeschlossen ist. Der Name ist dabei immer Garmin, jedoch kann der Buchstabe verschieden sein-je nachdem was schon an USB-Stick usw. am PC hängt.

Gibt es eine Möglichkeit den Laufwerksbuchstaben des Garmin zu ermitteln, da der Name des Laufwerkes ja bekannt ist?

Vielen Dank!

ringli 6. Sep 2007 21:11

Re: Laufwerksbuchstaben aus Laufwerksnamen ermitteln
 
Wie wäre es damit:
Delphi-Quellcode:
// Diese Funktion ist hier aus dem Forum
function GetVolumeLabel(Drive:char):string;
var VolLab:array [0..max_path] of char;
    MaxLength,SysFlag:DWord;
    OldErrorMode:integer;
begin
  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if GetVolumeInformation(PChar(drive+':\'), VolLab, 255,
                       nil, MaxLength,
                       SysFlag, nil, 255) then
      begin
        Result:=vollab;
      end
    else
      begin
        Result := '';
      end;

  finally
    SetErrorMode(OldErrorMode);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  I : Integer;
  Drive : Char;
  VolumeLabel : String;
begin
  for I := 0 to 25 do
    begin
      Drive := Chr(I + Ord('A'));
      VolumeLabel := GetVolumeLabel(Drive);

      if VolumeLabel = 'Garmin' then
        begin
          showmessage('Der gesuchte Laufwerksbuchstabe ist: ' + Drive + ':');
          Exit;
        end;
    end;
end;

Brakeman 6. Sep 2007 21:14

Re: Laufwerksbuchstaben aus Laufwerksnamen ermitteln
 
Hallo,
vielen Dank. In der Zwischenzeit bin ich auch auf die Funktion GetVolumeInformation gestoßen.

Danke nochmal für die Antwort!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz