Utilisation de la bibliothèque WMI Windows 'Comment puis-je éjecter CD ROM monté sur un lecteur de CD / DVD spécifique? P>
Je demande des sources de documents ou d'exemples WMI depuis que j'utilise WMI.PY Bibliothèque sur Python. p>
Ce serait génial si la solution satisfait à Windows Computer NEWER que Windows 2000 et à disposer de Multi CD-ROM. (C'est-à-dire que j'ai: F: F: Les lecteurs et les deux sont des lecteurs de CD-ROM. Je souhaiterais peut-être éjecter CD en F: spécifiquement.) P>
recherché sur le net mais n'a pas pu trouver quoi que ce soit pertinent. La dernière solution doit avoir la tige de billets de 3e parties et l'exécution de la coquille. P>
3 Réponses :
WMI lui-même ne fournit pas de moyens d'éjecter des lecteurs de CD / DVD. Il y a d'autres solutions cependant, qui impliquent l'utilisation de fonctions de l'API Windows, par exemple:
à l'aide du à l'aide du MCIsendRing Code> une fonction>. Je ne peux pas vous aider avec le code Python, mais voici l'exemple C # pour vous aider à obtenir l'idée: p>
mciSendString("open f: type cdaudio alias cdrom", null, 0, IntPtr.Zero);
mciSendString("set cdrom door open", null, 0, IntPtr.Zero);
périoocontrol code> une fonction>. Un exemple (aussi en C #) est Ici . P> LI>
ul> p>
Vous pouvez utiliser CTTYPES .
ctypes.windll.WINMM.mciSendStringW(u"open D: type cdaudio alias d_drive", None, 0, None) ctypes.windll.WINMM.mciSendStringW(u"set d_drive door open", None, 0, None)
Fait intéressant, ne fonctionnait pas pour moi. Imprime juste 0 à la console. J'ai 2 lecteurs de CD-ROM. D: et F :, D: Images ISO de confiance et F: pour un véritable lecteur de cdrom. Peut-être que c'est la raison?
Vous pouvez utiliser la commande ouverte pour initialiser un lecteur spécifique. J'ai mis à jour la réponse en conséquence.
J'ai trouvé le problème. Si je monte 2 CD-ROM (disons D: et F :) et d: (Commande d'apparence) n'est pas un lecteur éjectable (tel que le montage virtuel), il ne quittera pas et aussi loin que j'ai observé, rien ne résout que cela . Cependant, si je désactive ce lecteur et utilise un plateau physique, cela fonctionne! Merci.
Vous pouvez utiliser PYGAME
pygame.cdrom.CD.eject()
Bien que ce code puisse répondre à la question, fournissant un contexte supplémentaire concernant la raison et / ou la manière dont ce code répond à la question améliore sa valeur à long terme.