Einzelnen Beitrag anzeigen

Benutzerbild von Truther
Truther

Registriert seit: 27. Mai 2013
20 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Schreibschutz eines Wechselmediums auslesen

  Alt 19. Sep 2014, 20:15
@hathor Danke, jetzt wird keine Exception mehr ausgelöst. Jedoch ist der Wert False, wenn ich den Stick mit dem Schreibschutz-Schalter einstecke und das Programm ausführe. Das Problem hatte himitsu ja schon angesprochen. Es ist wohl nur von der Hardware-Seite schreibgeschützt, kann jedoch von der Software-Seite ausgelesen werden.

Woher weiß dann Windows, ob der Datenträger beschreibbar ist? Allein im Kontext-Menü fallen doch Schreib-Aktionen (Löschen, Ausschneiden) weg. Das wird doch wohl nicht alles über Exceptions laufen, oder?

Die Lösung mit GetVolumeInformation und FILE_READ_ONLY_VOLUME ist die, die mir geholfen hat.

Hier ist der Code, um diese Eigenschaft auszulesen:

Delphi-Quellcode:
function IsDriveWriteProtected(Drive: Char): Boolean;
const
  FILE_READ_ONLY_VOLUME = $00080000;
var
  Drive_Flags: DWORD;
begin
  if GetVolumeInformation(PChar(Drive + ':\'), nil, 0, nil, DWORD(nil^), Drive_Flags, nil, 0) then
  begin
    Result := ((Drive_Flags and FILE_READ_ONLY_VOLUME) = FILE_READ_ONLY_VOLUME)
  end;
end;
Hier der Code, den ich als Vorlage genommen habe: http://www.delphipraxis.net/41824-pr...formation.html

Ich danke euch allen, für eure Beiträge.

MfG
-- Truther
  Mit Zitat antworten Zitat