Einzelnen Beitrag anzeigen

Benutzerbild von Truther
Truther

Registriert seit: 27. Mai 2013
9 Beiträge
 
#10

AW: Schreibschutz eines Wechselmediums auslesen

  Alt 19. Sep 2014, 19: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
"Lass Dir von niemanden je einreden, dass Du was nicht kannst. Wenn Du einen Traum hast, musst du ihn beschützen. Wenn andere was nicht können, wollen sie dir immer einreden, dass du es auch nicht kannst. Wenn du was willst, dann mach es! Basta." - Will Smith
  Mit Zitat antworten Zitat