Je veux que mon ordinateur Windows exécute un script Python lorsqu'il détecte qu'un lecteur flash qui a un nom particulier (par exemple, «mon lecteur») a été branché. P>
Comment puis-je y parvenir? p>
Devrais-je utiliser un outil sous Windows ou y a-t-il un moyen d'écrire un autre script Python pour détecter la présence d'un lecteur flash dès qu'il est branché? (Je préférerais cela si le script était sur l'ordinateur.) P>
(Je suis une programmation débutant ..) p>
3 Réponses :
Eh bien, si vous êtes sur une distribution Linux, alors Cette question sur alors aurait la réponse.
Je peux penser à une solution ronde (non élégante) pour votre problème, mais à tout le moins, cela fonctionnerait. P>
Chaque fois que vous insérez votre lecteur flash dans un port USB, le système d'exploitation Windows attribue un lettre de conduire à elle. Aux fins de la présente discussion, appelons cette lettre 'f'. P>
Ce code semble voir si nous pouvons CD dans F: \ code>. S'il est possible de CD dans
f: \ code>, nous pouvons terminer, nous pouvons conclure que "F" a été alloué en tant que lettre de lecteur, et sous l'hypothèse que votre lecteur flash est toujours attribué à "F", Nous pouvons conclure que votre lecteur flash a été branché. p>
Mais le lecteur ne sera pas toujours attribué à la même lettre. Comment puis-je expliquer cela?
C'est juste la chose. Je ne peux pas penser à une façon de le faire tout de suite. Mais à tout le moins, c'est une solution partielle. Je l'ai posté seulement parce qu'il n'y avait pas d'autre solution à l'époque. Donc j'ai pensé qu'une solution partielle serait meilleure que rien du tout
Bien que vous puissiez utiliser une méthode similaire comme «inpectorg4dget» suggéré, mais qui sera beaucoup inefficace. P>
Vous devez utiliser Win API pour cela. Cette page pourrait vous être utile: lien a > p>
et d'utiliser Win API's in Python Vérifiez ce lien: lien a> p>
Cela fonctionne, mais nécessite l'installation d'au moins un module supplémentaire
Construire sur l'approche "CD", que se passe-t-il si votre script a énuméré la liste des lecteurs, attendit quelques secondes pour que Windows affecte la lettre de lecteur, puis re-énuméra la liste? Un ensemble Python pourrait vous dire ce qui a changé, non? Ce qui suit a fonctionné pour moi: