8
votes

Comment éjecter CD avec WMI et Python?

Utilisation de la bibliothèque WMI Windows 'Comment puis-je éjecter CD ROM monté sur un lecteur de CD / DVD spécifique?

Je demande des sources de documents ou d'exemples WMI depuis que j'utilise WMI.PY Bibliothèque sur Python.

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.)

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.


0 commentaires

3 Réponses :



12
votes

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)


3 commentaires

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.



0
votes

Vous pouvez utiliser PYGAME

pygame.cdrom.CD.eject()


1 commentaires

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.