Slt tlm, je cherche un moyen d'ouvrir le lecteur cd et dvd, et de les fermer.@+
Version imprimable
Slt tlm, je cherche un moyen d'ouvrir le lecteur cd et dvd, et de les fermer.@+
Eh bien, il semblerait qu'il y ait plusieurs solutions: Diverses solutions à haut niveau que je ne connais pas, utilisant généralement MFC, COM, etc.
Ou bien, à bas niveau avec la fonction DeviceIoControl(): cherche la doc de IOCTL_STORAGE_EJECT_MEDIA et IOCTL_STORAGE_LOAD_MEDIA...
un petit exemple:
Edit: À bas niveau, tu choisis directement avec la lettre (\\.\E: par exemple) mais:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 DWORD dwBytesReturned; HANDLE hDevice = CreateFile(deviceName, GENERIC_READ | GENERIC_WRITE | FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); DeviceIoControl( hDevice, // handle to device IOCTL_STORAGE_EJECT_MEDIA, // dwIoControlCode NULL, // lpInBuffer 0, // nInBufferSize NULL, // lpOutBuffer 0, // nOutBufferSize &dwBytesReturned, // number of bytes returned : never NULL NULL // OVERLAPPED structure ); CloseHandle(hDevice);
1) C'est déconseillé (sécurité etc.),
2) il faut être membre du groupe administrateurs
3) Ca ne marche que sous les windows NT
bah en appuyant sur le bouton "eject"
salut,
:recherch:
Ce même sujet a été traité cette semaine,
voir la fin du post it faq deux contributions ont été postées.
regarder dans les commandes MCI dans le MSDN ; ça se fait tout simplement.
le prob que je rencontre, c'est que j n'arrive pas a ouvrir le lecteur cd. J'utilise la commande mciSendString(); et ca ouvre tjs le lecteur dvd. Je voudrais pouvoir ouvrir les 2.
il faut faire une recherche sur tous les lecteurs et considérer celui que l'on souhaite ouvrir.Citation:
Envoyé par ArkAng3
Il ya des API pour ça du genre GetVolumeLabel GetDriveType....
Voir MSDN
A la fin y'a un lien vers comment spécifier le lecteur avec MCI, sinon une alternative avec les IOCTL:
http://www.developpez.net/forums/vie...241301#2241301
:D merci ca marche impec Aurelien