Ejection cd

tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 - 26 sept. 2005 à 16:35
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 - 30 sept. 2005 à 14:06
Bonjour a tous,
Quelle fonction permet e détecté l'ejection d'un cd (et de renvoyé lequel es ce)?
Merci pour votre aide.

8 réponses

cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
26 sept. 2005 à 17:51
précise un peu :

Quelle librairie????
parce qu'en assembleur ca risque d'etre la misere lol;

@+;
ROOT_DIEU.
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
26 sept. 2005 à 17:57
salut

tu peux utiliser les IOCTL





#include <windows.h>







// Envoie un IOCTL simple vers le périphérique donné



bool SendSimpleIOCTL( LPCTSTR DeviceName, DWORD IoControlCode )



{



// ouvrir le driver associé au périphérique donné



HANDLE hDevice = ::CreateFile(



DeviceName,



GENERIC_READ,



0,



0,



OPEN_EXISTING,



FILE_ATTRIBUTE_NORMAL,



0 );



if ( hDevice == INVALID_HANDLE_VALUE )



{



return false;



}







// envoyer l'IOCTL



DWORD unused;



BOOL res = ::DeviceIoControl(



hDevice,



IoControlCode,



NULL,



0,



NULL,



0,



&unused,



NULL );







// libérer les ressource



::CloseHandle( hDevice );







return res == TRUE;



}







// ouvre le tiroir d'un CD-ROM, ou autre...



bool EjectDevice( LPCTSTR DeviceName )



{



return SendSimpleIOCTL(



DeviceName,



IOCTL_STORAGE_EJECT_MEDIA );



}







// ferme le tiroir d'un CD-ROM, ou autre...



bool CloseDeviceDoor( LPCTSTR DeviceName )



{



return SendSimpleIOCTL(



DeviceName,



IOCTL_STORAGE_LOAD_MEDIA );



}







int main()



{



// le disque peut être désigné soit via son nom logique (par exemple "D:")



// soit par son nom de périphérique ("CdRom0")



// Dans les deux cas, ils doivent être précédés de "\\.", ce qui donne



// "\\.\D:" et "\\.\CdRom0". Mais en C/C++ il faut doubler les antislash,



// soit au final "\\\\.\\D:" et "\\\\.\\CdRom0";



EjectDevice( "\\\\.\\D:" );



CloseDeviceDoor( "\\\\.\\CdRom0" );



}
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
26 sept. 2005 à 18:13
dans mes sources, celle concernant la gravure, expose un exemple d'ejection de cd.

@+
Arnotic,
Admin CS,
Développeur chez Néos SDI,
MVP Visual C++
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
26 sept. 2005 à 18:54
mciSendString("Set cdaudio door open wait", 0, 0, 0);



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_mcisendstring.asp
if(!Meilleur("Joky")) return ERREUR;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
26 sept. 2005 à 19:25
Merci de vos réponses (elles me seront utiles par la suite),mais en fait c comment voir quand la porte du lecteur s'ouvre que je voulais,j'ai pensé utilisé les messages de windows (WM_DEVICECHANGE) le problème étant que quelque soit le "device" (clef usb ect...) windows envoi ce message et j'ai as trouvé comment reconnaitre qui est le "device"
Merci
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
26 sept. 2005 à 19:32
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_mm_mcinotify.asp


Regarde un peu les messages, j'suis pas sur :)
if(!Meilleur("Joky")) return ERREUR;
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
30 sept. 2005 à 14:06
Ma foi je suis allé voir,mais je n'ai rien trouvé de vraiment intérressant,le seul message qui pourrait peut etre m'etre utile c'est "MCIWNDM_GETMOD" mais je suis même pas sur,de plus j'ai un problème avec l'inclusion du .h (voir le sujet "Des erreurs dans les fichier d'en tete???")
Donc voili pour l'instan c o point mort.
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
30 sept. 2005 à 14:06
Ma foi je suis allé voir,mais je n'ai rien trouvé de vraiment intérressant,le seul message qui pourrait peut etre m'etre utile c'est "MCIWNDM_GETMOD" mais je suis même pas sur,de plus j'ai un problème avec l'inclusion du .h (voir le sujet "Des erreurs dans les fichier d'en tete???")
Donc voili pour l'instan c o point mort.
0
Rejoignez-nous