eject unter XP

Hi

Kennt jemand eject für XP? Und womit man das CD-Romlaufwerk schliessen kann.


Gruß BM
 
Hallo Blacki

Google kennt es.

MfG dfi
 
Sorry, aber ich und die anderen können aus deinem ersten Post nicht erkennen, dass sich deine Frage auch nur entfernt auf C++ bezieht.

Aber hier ein Anhaltspunkt:

rundll32.exe winmm.dll mciExecute "Set CDaudio Open"
rundll32.exe winmm.dll mciExecute "Set CDaudio Close"
rundll32.exe winmm.dll mciExecute "Set CDaudio Door Open"
rundll32.exe winmm.dll mciExecute "Set CDaudio Door Close"

Anhaltspunkt deswegen weil diese Varianten bei mir nicht funktionieren. 'CDaudio' muss nämlich auf manchen Systemen durch etwas anderes ersetzt werden, weil die Laufwerke dort auch anders heißen.

AutoIt kann Laufwerke übrigens auch öffnen...



MfG, BattleMaker
 
THX!

also einfach

int eject()
{
system("rundll32.exe winmm.dll mciExecute "Set CDaudio Open"");
system("rundll32.exe winmm.dll mciExecute "Set CDaudio Door Close"");
}

Oder geht das wegen den "" nicht???

Hab im mom keine zeit zum progn
 
Auf jeden Fall kann ich dir garantieren, dass das so nicht auf jedem PC funktionieren wird, denn bei mir funktioniert es schon mal nicht.

Wenn du ausprobieren willst, ob es bei dir funktioniert, verwende doch einfach den Ausführen-Befehl von Windows:
START > AUSFÜHREN > [rundll32.exe winmm.dll mciExecute "Set CDaudio Open"] eingeben.

Ich glaube dass es bei mir nicht funktioniert liegt daran, weil ich ein DVD-Laufwerk und kein CD-Laufwerk habe.

Und die ganzen HaBo-Spezialisten mit ihrer wahnsinnigen Erfahrung =) könnten sich auch mal beteiligen, mich würde nämlich auch interessieren, wie das Ganze korrekt umzusetzen ist.


MfG, BattleMaker
 
HI hab früher mal in Visual Basic 5 ein prgramm geschreiben das cdrom alsufwerke auf knopfdruck ein- ausfährt.
wenn du es einfach startest dann kommt eine sehr bescheidene GUI :-)
kannst es aber auch in der console verwenden (in *.bat datei oder als verknüpfung oder als tastenkürzel) und zwar folgender maßen: "CD-auswerfen auswf" dann wir Laufwerk "f" ausgeworfen oder "CD-auswerfen einzd" dann wird Laufwerk "d" eingezogen.

Viel Spass dabei

(P.S. kann sein das du die VBS Runtime Dateien brauchst, die sind aber kostnelos hier zu bekommen)

keine sorge ist keine virus oder ähnlich schädliches, wer nicht glaubt kann von mir den sourcecode haben :D
 
Vielen Dank!
Geht doch wenn man nett nachfragt. Und das Beste: Es funktioniert sogar bei mir!

Aber ich hätte gern den Quellcode, sonst bringt das ja nichts. Ich meine ich hab mir auch schon ein AutoIt-Script geschrieben, das mein Laufwerk ausfährt, aber ich will wissen wie ich das selbst hinkriege...


MfG, BattleMaker
 
so also hier der quellcode
(ist ne einfache Visual Basic datei, llässt sich mit jedem texteditor üffnen)
erwartet aber keine wunder, ist eines meiner aller ersten programme *g*
 
Vielen Dank! Blicke zwar immer noch nicht voll und ganz durch (weswegen ich den Gebrauch von API's im Großen und Ganzen auch verabscheue, bis auf BlockInput in user32.dll :D), aber das wird sich bestimmt noch ändern =)

Frohe Weihnachten und einen guten Rutsch! :)


MfG, BattleMaker
 
Unter NT (also alles, außer Win 95/98/ME)s:
Winapis
CreateFile und DeviceIoControl.
also:
Code:
handle= CreateFile,"\\.\D:",GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_READ,0,OPEN_EXISTING,0,0
 DeviceIoControl,handle,IOCTL_STORAGE_EJECT_MEDIA ,0,0,addr outbuffer,sizeof outbuffer,addr bytesreturned,0
und entsprechend IOCTL_STORAGE_LOAD_MEDIA  zun "wiedereinziehen".
für alle, die nicht mit VC++ programmieren und nicht zufällig VC auf dem Rechner haben um die Definitionen nachzuschauen:
0x0002d4808 (IOCTL_STORAGE_EJECT_MEDIA )
0x002D480C (IOCTL_STORAGE_LOAD_MEDIA)

aber mit DeviceIo lassen sich noch viele andere "lüstigere" Sachen machen, wie Zugriffe auf Laufwerke sperren, diese unmounten und verschiedne Infos abfragen. Man kann z.B damit im laufendem Betrieb den CD-Auswurf verhindern (zumindest funktionierte es auf meinen beiden Rechnern) . Ist leider etwas zu lange her, als ich damit noch rumgespielt habe.
 
Ist das nicht das falsche Forum? Wäre Code Kitchen nicht angebrachter?
 
Zurück
Oben