Detection CDROM - C++ - Programmation
Marsh Posté le 22-07-2005 à 09:53:19
Salut, 
J'ai cherché et j'ai trouvé le code suivant : 
 
MCI_STATUS_PARMS Info; 
ZeroMemory(&Info, sizeof(Info)); 
Info.dwItem = MCI_STATUS_MEDIA_PRESENT; 
mciSendCommand(mci_cd_device, MCI_STATUS, MCI_STATUS_ITEM, 
                              DWORD(&Info)); 
if(!Info.dwReturn) 
  MessageBox(NULL, "Pas de CD détecté !", "", MB_OK); 
else 
  MessageBox(NULL, "C bon y'a un cd  ", "", MB_OK);
", "", MB_OK); 
 
 
Mais je trouve pas ou on defini quel lecteur il doit tester . 
Je pense que c'est la variable mci_cd_device mais je ne sais po comment lui dire . 
 
Merci 
Marsh Posté le 22-07-2005 à 18:18:38
(Pas testé) 
| Code : 
 | 
Marsh Posté le 25-07-2005 à 09:39:21
J'ai rajouté ca dans ton code pou tester: 
 
| Code : 
 | 
 
 
 
Mais dans tout les cas il me renvois qu'il y'a un cd détecté.... 
tu defini bien le lecteur qu'il scan grace a DEVTYPE_CD_AUDIO ? de cette facon la : 
 
| Code : 
 | 
 
 
Merci de ton aide!
Marsh Posté le 01-08-2005 à 14:59:26
Avec IOCTL_CDROM_GET_DRIVE_GEOMETRY, tu dois pouvoir déterminer si un CD est présent, ainsi que s'il est vierge ou non.
Marsh Posté le 01-08-2005 à 18:13:19
Salut , 
J'ai cherché, mais je ne trouve pas comment utiliser IOCTL_CDROM_GET_DRIVE_GEOMETRY pour detecter si un cd est vierge . 
Pourrai tu me donner un code d'exmple, ou me renvoyer vers un site qui en parle si tu trouve. 
 
MErci ! 
Marsh Posté le 02-08-2005 à 10:45:16
http://support.microsoft.com/defau [...] -US;138434 
Tu peux simplifier l'exemple en virant l'utilisation du fichier (1° CreateFile) et en supprimant les appels à IOCTL_CDROM_MEDIA_REMOVAL qui ne sont pas utiles dans ton cas. 
Bon finallement j'ai fait le test, ça marche: 
| Code : 
 | 
Marsh Posté le 21-07-2005 à 13:48:19
Bonjour,
POur mon programme en C++ qui va graver des cd, j'ai besoin de savoir si un cd est insérer dans le lecteur ou pas.J'utilise donc la fonction DiskSize() qui renvoi -1 en cas d'echec. Le truc c que si j'insere un cd vierge, la fonction renvoi également -1 comme si il n'y avait pas de cd.
Je cherche donc un moyen de savoir si le cd inséré est vierge en C++...
Merci de votre aide!