CD- Laufwerk bei MCI wechseln
-
Hallo Leute,
Ich probiere gerade etwas mit der MCI herum. Mit dieser kann ich ja auch CDs wiedergeben. Nun hat mein Rechner aber zwei Laufwerke und daraus ergibt sich meine Frage: Wie kann ich einstellen, dass statt der CD in Laufwerk F:\ die CD in Laufwerk G:\ abgespielt wird?
Zudem wäre ich sehr erfreut, wenn ihr mir vielleicht einen Link zu einem gut verständlichen Tutorial zur MCI geben könntet!!!
Vielen Dank für eure Hilfe,
Euer Entertainer
-
#include "stdafx.h" void ejectmedia(char *laufwerksbuchstabe, int openDrive); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ejectmedia("f:",1); // Laufwerksklappe öffnen ejectmedia("f:",0); // ...und wieder schließen return 0; } void ejectmedia(char *laufwerksbuchstabe, int openDrive) { char mciS[500]; // Laufwerk 'laufwerksbuchstabe' als cdaudio-Gerät mit dem Alias 'cdlw' öffnen: wsprintf(mciS,"open %s type cdaudio alias cdlw",laufwerksbuchstabe); mciSendString(mciS,NULL,0,NULL); if (openDrive>0) { mciSendString("set cdlw door open",NULL,0,NULL); } else { mciSendString("set cdlw door closed",NULL,0,NULL); } return; }
...prinzipiell also das laufwerk einfach mit einem alias-namen öffnen und dann bei weiteren Befehlen nicht cdaudio sondern den Alias-Namen angeben...
-
Die IMHO bessere Lösung ist:
#include <windows.h> #include <tchar.h> #include <stdio.h> int _tmain() { DWORD dwBytes; HANDLE hCdRom = CreateFile(_T("\\\\.\\M:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hCdRom == INVALID_HANDLE_VALUE) { _tprintf(_T("Error: %x"), GetLastError()); return 1; } // Open the door: DeviceIoControl(hCdRom, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL); Sleep(1000); // Close the door: DeviceIoControl(hCdRom, IOCTL_STORAGE_LOAD_MEDIA, NULL, 0, NULL, 0, &dwBytes, NULL); CloseHandle(hCdRom); }