Ciao a tutti.... volevo chiedervi il comando o la procedura che permette di aprire/chiudere il cd-rom ovviamente in c++.
Grazie ciao
Ciao a tutti.... volevo chiedervi il comando o la procedura che permette di aprire/chiudere il cd-rom ovviamente in c++.
Grazie ciao
codice:/* linkare la libreria "winmm.lib" ("libwinmm.a" in dev c++) */ #include <windows.h> int main() { char *s; int i; s=(char*) malloc(sizeof(char)); i=mciSendString("set CDAudio door open", s, 100, 0); free(s); return 0; }
...Terrible warlords, good warlords, and an english song
A questa funzione passi true o false, a seconda se vuoi aprire o chiudere, ed il drive.codice:void openCD(BOOL bOpen, TCHAR cDrive) { MCI_OPEN_PARMS op; MCI_STATUS_PARMS st; DWORD flags; TCHAR szDriveName[4]; strcpy(szDriveName, "X:"); ::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS)); op.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_CD_AUDIO; if(cDrive > 1) { szDriveName[0] = cDrive; op.lpstrElementName = szDriveName; flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT | MCI_OPEN_SHAREABLE; } else flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE; if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op)) { st.dwItem = MCI_STATUS_READY; if(bOpen)mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0); else mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0); mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0); } }![]()
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77]elf90 g77
[C++ /WinAPI] DevC++ VisualC++
Ciao innanzi tutto grazie per aver risposto....però ho ancora qualche domanda
Per Johnny_Depp: per linkare la libreria winmm.lib si fa allo stesso modo che con i file dll?? O se no puoi dirmi come si fa? Inoltre volevo chiederti dove hai trovato il primo parametro "set CDAudio door open" ho cercato sull'MSDN ma nn l'ho trovato...l'ho fatto per vedere se oltre a questo potevo mettere altri parametri.
Per Xadoom: innanzi tutto bel nome (leggevo anche io pk) poi volevo dirti che ho provato a compilare il tuo codice ma mi dà errore...nn è che anche qui devo linkare la libreria winmm.lib??
Grazie ciao![]()
Ovvio, devi includere Windows.h e linkare anche la libreria winmm.lib, per fare ciò, io uso Devc++, devi andare sulle opzioni di progetto e settare parametri-->Linker-->Aggiungi libreria.
![]()
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77]elf90 g77
[C++ /WinAPI] DevC++ VisualC++
/* e così lo chiudi :adhone: */
i=mciSendString("set CDaudio door closed", s, 100, 0);
p.s. per linkare la libreria (.lib)
fai come ti ha detto Xadoom
se utilizzi Microsoft Visual C++
il procedimento è simile:
menù Project\Settings\LINK\
nella casella "Object\Library modules" aggiungi in coda: "winmm.lib"
se invece compili da linea di comando (prompt dos)...
generalmente si aggiunge il parametro: "-L ../lib/winmm.lib"
...Terrible warlords, good warlords, and an english song
Ho provato il codice di Xadoom. Ho effettuato questa chiamata nel main():
Il programma viene compilato senza errori, ma se lo avvio non fa nulla e non termina..codice:int main() { openCD(true, 'D'); return 0; }
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Devi specificare :
codice:int main() { openCD(true, "D:\"); return 0; }![]()
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77]elf90 g77
[C++ /WinAPI] DevC++ VisualC++
No, no...aspetta....
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77]elf90 g77
[C++ /WinAPI] DevC++ VisualC++
A me va benissimo....
Hai linkato la libreria?codice:#include <iostream> #include <stdlib.h> #include <windows.h> using namespace std; void openCD(BOOL bOpen, TCHAR cDrive); int main(int argc, char *argv[]) { openCD('D',true); system("PAUSE"); return 0; } /*Apre o chiude il cassetto cd del driver*/ void openCD(BOOL bOpen, TCHAR cDrive) { MCI_OPEN_PARMS op; MCI_STATUS_PARMS st; DWORD flags; TCHAR szDriveName[4]; strcpy(szDriveName, "X:"); ::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS)); op.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_CD_AUDIO; if(cDrive > 1) { szDriveName[0] = cDrive; op.lpstrElementName = szDriveName; flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT | MCI_OPEN_SHAREABLE; } else flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE; if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op)) { st.dwItem = MCI_STATUS_READY; if(bOpen)mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0); else mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0); mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0); } }![]()
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77]elf90 g77
[C++ /WinAPI] DevC++ VisualC++