Prüfen ob CDLaufwerk offen
-
hola
auszug aus newsgroups:
Each time something changes in the hardware, the Windows system broadcasts the WM_DEVICECHANGE = &H219 message. wParam parameter of the message contains the value of the specific event and the lParam contains pointer to the address of a structure that contains event-specific data. Its meaning depends on the given event. When the CDROM door is opened wParam = DBT_DEVICEREMOVECOMPLETE, when it is closed wParam = DBT_DEVICEARRIVAL.Meep Meep
-
Das funktioniert ja wirklich
aber leider funktioniert es nur wenn bei zumachen des CD-Laufwerks eine CD eingelegt wurde und beim öffnen eine CD drin war. 
Kennt jemand jemand vielleicht noch eine andere Lösung.
-
Gefunden

Die Bibliothek BassCD.dll stellt diese Funktion ganz bequem über
BOOL WINAPI BASS_CD_DoorIsOpen( DWORD drive );zur Verfügung. http://www.un4seen.com
Kann mir vielleicht jemand (mit etwas Assembler Erfahrung) sagen wie genau die Dll das macht, damit ich mit meinen Programm nicht immer umständlich diese Dll mitliefern muss?
-
Ich denke mal die schicken einfach ein TEST UNIT READY per DeviceIoControl ans laufwerk
-
Ich sehe da nur Konstanten in der MSDN bezüglich DeviceIoControl wie genau muss der aufruf aussehen ?
-
Also ich sehe in der MSDN über DeviceIoControl mehr als nur Konstanten...
-
Ich meine natürlich wlchen ControlCode ich bei dwIoControlCode verwenden soll.
-
IOCTL_SCSI_PASS_THROUGH_DIRECT
Hier was über das TEST UNIT READY kommando:
http://www.linuxhaven.de/dlhp/HOWTO/DE-SCSI-Programmierung-HOWTO-10.html
Hier deine struktur:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/storage/hh/storage/structs-scsibus_64c46eef-e5bc-4e81-a479-2bdbd93605e7.xml.aspjetzt nur noch mit den infos aus link 1 das Cdb attribut (SCSI command) link 2 füllen das ganze ans drive schicken (falls du ein beispiel brauchst: http://cvs.gnome.org/viewcvs/nautilus-cd-burner/transport.hxx?rev=1.5 Scsi_Command - natürlich nur die WIN32 version für interessant
)
-
Untern dem Link steht aber, dass man damit ermittelt ob ein Medium im Luafwerk ist, ich möchte aber wissen ob dass CD Laufwerk offen oder geschlossen ist (unabhängig davon ob ein Mdeium darin liegt).
-
Hmm... geht das jetz noch weiter? Hat jmd ne Lsg???