![]() |
![]() Sincronizza Indice |
![]() Scarica il progetto |
![]() Testo dell'articolo |
![]() Stampa l'articolo |
In alcuni programmi multimediali può essere piacevole aprire e chiudere il cassetto del lettore CD per invitare l'utente ad inserire un disco nell lettore. Si tratta di un'operazione di cui è meglio non abusare, ma in quei rari casi in cui fosse necessaria un'operazione del genere, le funzioni MCI provvedono una via molto semplice.
Innanzitutto è necessario definire i tipi, le costanti Alle righe 11-16 sono definite varie costanti API che saranno utilizzate più avanti dalla funzione mciSendCommand, dichiarata alla riga 18.
Dichiariamo anche una variabile di nome openParams del tipo MCI_OPEN_PARAMS definito in precedenza.
Prima di eseguire un comando su un'unità MCI è fondamentale aprire un handle a tale unità utilizzando la solita funzione mciSendCommand; al termine del suo utilizzo sarà opportuno chiudere lo stesso. Alla riga 23 viene specificato l'ID della periferica da utilizzare il cui tipo è definito alla riga successiva (cdaudio). Forniti i parametri necessari sarà possibile richiedere l'apertura dell'handle alla periferica tramite la funzione API mciSendCommand specificando come comando (messaggio) il valore della costante MCI_OPEN. I parametri aggiuntivi da fornire riguardano il tipo di argomento passato, nel nostro caso una struttura di tipo MCI_OPEN_PARMS, identificata dalla costante API MCI_OPEN_TYPE ed un puntatore (infatti l'argomento è dichiarato con ByRef) alla variabile openParams. Non appena effettuata l'apertura del dispositivo MCI il membro wDeviceID riceverà il vero ID della periferica, precedentemente inizializzato a 0. In maniera analoga, alla chiusura del form, sarà necessario chiudere l'handle aperto utilizzando sempre la funzione mciSendCommand passando come parametri l'ID del dispositivo aperto e come comando (messaggio) il valore della costante MCI_CLOSE. A tutti gli altri argomenti può essere passato un valore di zero.
L'apertura e la chiusura del cassetto del lettore CD si differenziano soltanto per un parametro inviato alla funzione mciSendCommand. Infatti in entrambi i casi sarà necessario fornire l'ID della periferica ed il messaggio corrispondente alla costante MCI_SET. La differenza sta nel terzo argomento della funzione: in caso di apertura dovrà essere passata la costante MCI_SET_DOOR_OPEN, mentre, in caso di chiusura la costante da passare sarà MCI_SET_DOOR_CLOSED. Ci penserà la funzione MCI a richiedere l'apertura o la chiusura
del cassetto del CD.
|
A volte è incredibile! Un problema legato a questa soluzione, però, sta nel fatto che l'apertura del cassetto avviene in maniera sincrona ovvero il programma interrompe la sua esecuzione durante l'operazione di apertura e di chiusura del cassetto del lettore CD. Fibia
FBI
|
![]() |