Einzelnen Beitrag anzeigen

Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#17

Re: Floppy schreibschutz an oder aus?

  Alt 5. Okt 2006, 14:06
Die Meldung ist ja nicht so schlimm, ich könnte ja prüfen, ob ich auf einem A Laufwerk bin.
SetErrorMode? Hab es mir angesehen. Wenn ich das Umssetzen könnte, hätte ich bestimmt Arbeit als Programmierer.

Roter Kasten:
Ja ich auch. Aber bei mir geht es nicht.
Du hast einen Bug drin, wie ich sehe, das zum Thema generalisieren, (wie ich erst das hasse: )
Delphi-Quellcode:
 function IDW(Drive: Integer): Boolean;
const
  IOCTL_DISK_IS_WRITABLE = (
    ($00000007 shl 16) or (0 shl 14) or
    ($0009 shl 2) or 0);
var
  Device: String;
  hFile: THandle;
  BytesReturned: Cardinal;
begin
  Result := false;
  //Device := Format('\\.\%s:', [Char(Drive + 65)]); //Original! Da muss wohl die +65 raus
  Device := Format('\\.\%s:', ['A']); //Zum Testen von Laufwerk A. Geht!
  //Geht sogar, wenn ich den Schreibschutz beim Prüfen ändere.
  hFile := CreateFile(@Device[1], GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
                      OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if hFile <> 0 then
  begin
    Result := DeviceIoControl(hFile, IOCTL_DISK_IS_WRITABLE, nil, 0, nil, 0,
                              BytesReturned, nil);
    CloseHandle(hFile);
  end;
end;
Na, dann bleibt nur noch am Schluss diese Threads den richtigen Code zu veröffentlichen, damit niemand so rumstoppselt wie ich. Ich habe den Code mal getestet und hier geschrieben. Das ist doch wohl ok?

Beste Grüße!
Go2EITS
  Mit Zitat antworten Zitat