
Laufwerk auswerfen
- Pure-r-Freak
- Beiträge: 74
- Registriert: 08.03.2005 13:40
- Pure-r-Freak
- Beiträge: 74
- Registriert: 08.03.2005 13:40
kann mir einer helfen?
wie kann ich am besten den den status des laufwerks abfragen (zu auf)
mit meinen versuch geht es nicht besonders zuverlässig
wie kann ich am besten den den status des laufwerks abfragen (zu auf)
mit meinen versuch geht es nicht besonders zuverlässig

Code: Alles auswählen
OpenConsole()
If InitCDAudio() = 0
MessageRequester("Error", "kein laufwerk gefunden", 0)
End
EndIf
Repeat
eject$=Input()
PrintN("")
If eject$="open"
UseCDAudio(0)
EjectCDAudio(1)
status$=""
status$ = "offen"
EndIf
If eject$="close"
UseCDAudio(0)
EjectCDAudio(0)
status$=""
status$ = "zu"
EndIf
If status$="offen"
PrintN("ist offen")
ElseIf status$="zu"
PrintN("ist zu")
ElseIf status$<>"offen" And status$<>"zu"
PrintN(""+(status$)+"")
EndIf
Until Quit=1
> wie kann ich am besten den den status des laufwerks abfragen (zu auf)
den Status kann man meiner Meinung nach nicht zuverlässig abfragen, weil
der Anwender ja auch die Möglichkeit hat, die Eject-Taste am Laufwerk
manuell zu betätigen und mir bisher kein Code bekannt ist, mit dem man das
ermitteln kann.
Grüße ... Kiffi
den Status kann man meiner Meinung nach nicht zuverlässig abfragen, weil
der Anwender ja auch die Möglichkeit hat, die Eject-Taste am Laufwerk
manuell zu betätigen und mir bisher kein Code bekannt ist, mit dem man das
ermitteln kann.
Grüße ... Kiffi
Hallo
Naja man kann schon abfragen ob es geöffnet ist und zwar mit CDAudioStatus() dieser Befehl hat 3 Rückgabewerte
-1: CD-Laufwerk nicht fertig (leer oder geöffnet)
0: CD-Laufwerk angehalten (aber die CD ist eingelegt und erkannt)
>0: Nummer des Audio-Tracks, der gerade abgespielt wird.
Also bei dem Rückgabewert -1 kann das Laufwerk offen sein aber der nachteil ist es kann auch keine CD im Laufwerk sein
Es ginge schon nur du müsstes 2 Abfragen machen zuerst ob es nicht fertig ist trifft dieses zu musst du noch eine Abfrage machen ob eine CD eingelegt wurde.
Ich weiss aber nicht obs wirklich Funktioniert habs nicht getestet
Naja man kann schon abfragen ob es geöffnet ist und zwar mit CDAudioStatus() dieser Befehl hat 3 Rückgabewerte
-1: CD-Laufwerk nicht fertig (leer oder geöffnet)
0: CD-Laufwerk angehalten (aber die CD ist eingelegt und erkannt)
>0: Nummer des Audio-Tracks, der gerade abgespielt wird.
Also bei dem Rückgabewert -1 kann das Laufwerk offen sein aber der nachteil ist es kann auch keine CD im Laufwerk sein
Es ginge schon nur du müsstes 2 Abfragen machen zuerst ob es nicht fertig ist trifft dieses zu musst du noch eine Abfrage machen ob eine CD eingelegt wurde.
Ich weiss aber nicht obs wirklich Funktioniert habs nicht getestet
- Pure-r-Freak
- Beiträge: 74
- Registriert: 08.03.2005 13:40
Hallo
Nunja
ergebniss = CDAudioStatus()
If ergebniss = 0 ;Hier weiss das Programm das eine CD eingelegt wurde und erkannt wurde
If ergebniss = -1 ;Und hier prüft man ob das Laufwerk bereit ist. Da eine CD drin ist (wurde ja vorhin geprüft) kann es nur mehr offen sein
isopen = 1
Else
isopen = 0
EndIf
EndIf
Das ist nur ein Beispiel ich weiss nicht ob das auch wirklich Funktioniert, musst halt mal probieren
EDIT:
Kann gar net gehen da ja nur einmal ein Rückgabewert da ist looool. Wo war ich denn da mit meinen Kopf
Nunja
ergebniss = CDAudioStatus()
If ergebniss = 0 ;Hier weiss das Programm das eine CD eingelegt wurde und erkannt wurde
If ergebniss = -1 ;Und hier prüft man ob das Laufwerk bereit ist. Da eine CD drin ist (wurde ja vorhin geprüft) kann es nur mehr offen sein
isopen = 1
Else
isopen = 0
EndIf
EndIf
Das ist nur ein Beispiel ich weiss nicht ob das auch wirklich Funktioniert, musst halt mal probieren
EDIT:
Kann gar net gehen da ja nur einmal ein Rückgabewert da ist looool. Wo war ich denn da mit meinen Kopf
Zuletzt geändert von pogi02 am 17.07.2005 01:29, insgesamt 1-mal geändert.
Hab mich jetzt auch mal mit dem Problem beschäftigt. Und kam auf folgende Lösung:
Code: Alles auswählen
CD=InitCDAudio()-1
Repeat
For t = 0 To CD
UseCDAudio(t)
Start=ElapsedMilliseconds()
EjectCDAudio(1)
Debug ElapsedMilliseconds()-Start
If ElapsedMilliseconds()-Start<300
EjectCDAudio(0)
EndIf
Next
ForEver
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Hab mich auch gefragt: Ist das nicht gefährlich? Aber geh mal in dein Arbeitsplatz und klick rechts auf dein CD Laufwerk, da steht auch "Auswerfen".Sylvia hat geschrieben:"Laufwerk auswerfen" ? Geht das überhaupt ??
[EDIT]
Habs ausprobiert, es passiert nicht viel, nur das Laufwerk geht auf.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.