Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi IsDriveRemovable (https://www.delphipraxis.net/92059-isdriveremovable.html)

PeterPanino 14. Mai 2007 02:39


IsDriveRemovable
 
Hallo, ich möchte herausfinden, ob ein bestimmtes Laufwerk ein Wechselmedium ist oder nicht. Darüberhinaus wäre es noch vorteilhaft zu wissen, welche Art von Wechselmedium es ggf. ist, also USB-Stick, oder Diskette, oder ZIP-Laufwerk, oder Wechselfestplatte, oder ... ...

Bisher habe ich folgende Funktion verwendet:
Delphi-Quellcode:
function DriveIsRemovable( Drive: WideString ): Boolean;
var
  DT: Cardinal;
begin
  DT := GetDriveTypeW( PWideChar( Drive ) );
  Result := ( DT <> DRIVE_FIXED );
end;
Etwa mit folgendem Aufruf:

Delphi-Quellcode:
procedure TForm1.btnClick(Sender: TObject);
var
  ThisDrive: string;
begin
  ThisDrive := ExtractFileDrive(APath);
  if DriveIsRemovable(ThisDrive) then
    MessageDlg(ThisDrive + ' IS removable!', mtInformation, [mbOK], 0)
  else
    MessageDlg(ThisDrive + ' is NOT removable!', mtInformation, [mbOK], 0);
end;
Weiß jemand eine bessere Funktion, die womöglich auch den Typ des Wechselmediums zurückliefert?

mkinzler 14. Mai 2007 06:59

Re: IsDriveRemovable
 
Per WMI

Dezipaitor 14. Mai 2007 07:16

Re: IsDriveRemovable
 
Die Seite zu GetDriveType
sagt eindeutig: benutze SetupDiGetDeviceRegistryProperty .
Beispiel gibts dort auch.

Das funkz auch unter Windows98


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 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