AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wird auf CD-Rom zugegriffen

Offene Frage von "VizeTE"
Ein Thema von VizeTE · begonnen am 6. Apr 2007 · letzter Beitrag vom 7. Apr 2007
 
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Wird auf CD-Rom zugegriffen

  Alt 6. Apr 2007, 23:46
Zitat von VizeTE:
Ich habe versucht was zur Statusabfrage herauszufinden. In Beiträgen wird oft auf die Funktionen DeviceIOControl und mciSendString verwiesen. Dabei ging es aber immer um die Abfrage ob das Laufwerk geöffnet oder geschlossen ist.
Ob ein Kaufwerk geöffnet oder geschlossen ist, kannst Du im fünften Beitrag dieses Threads sehen. Dafür sind Schreib-/Brennrechte erforderlich.

Die Prüfung, ob auf die CD/DVD zugegriffen werden kann, kannst Du mit CreateFile erledigen. Ob auf eine eingelegte CD/DVD zugegriffen werden kann, kann man mit DeviceIOControl prüfen. Für NT, 2000 und XP zum Beispiel
Delphi-Quellcode:
...
uses
  Windows, SysUtils;
...

function Drive_Access (const Drive: Char; var Status: Integer) : Boolean;
const
  IOCTL_CDROM_CHECK_VERIFY = 149504;
var
  DrivewHandle : THandle;
  nb : DWord;
begin
  Result := False;

  DriveHandle := CreateFile(PChar('\\.\' + Drive + ':'),
                            GENERIC_READ,
                            FILE_SHARE_READ,
                            NIL,
                            OPEN_EXISTING,
                            FILE_ATTRIBUTE_NORMAL or FILE_FLAG_NO_BUFFERING,
                            0);

  nb := 0;

  if DriveHandle <> INVALID_HANDLE_VALUE
  then
    Result := DeviceIOControl(DriveHandle,
                             IOCTL_CDROM_CHECK_VERIFY,
                             NIL,
                             0,
                             NIL,
                             0,
                             nb,
                             NIL);
 
  Status := GetLastError;

  CloseHandle(DriveHandle);
end;
Anstelle von GetLastError kann man sich auch den entsprechenden String holen. Die Function funktioniert auch mit eingeschränkten Rechten da keine Schreib-/Brennrechte benötigt werden.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 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