Y at-il un moyen de savoir quand l'application active change dans OSX via Python et AppKit? Je sais comment découvrir launchApplication et activeApplication (s'il vous plaît se référer à mon autre question ici: Finding the Current Active Window in Mac OS X using Python)Trouver quand l'ActiveApplication change dans OSX via Python
Répondre
J'ai an OS X app qui fait ceci par polling with an NSTimer. J'ai essayé de rechercher des notifications distribuées pour voir si je pouvais trouver une meilleure façon de le faire, mais je ne pouvais rien voir d'extrêmement utile. J'ai reçu des notifications lorsque l'application était launched ou quit. ce qui est au moins un peu utile. Vous pouvez voir l'enregistrement de ceux-ci où mon controller wakes up.
Cette application a été extrêmement utile pour moi et même interroger une fois par seconde utilise presque pas de CPU. Si je pouvais le rendre plus axé sur les événements, je le ferais, cependant. :)
Je ne suis pas au courant d'un 'officiel'/bonne façon de le faire, mais une façon hackish d'y arriver est d'écouter les notifications distribuées et de voir celles qui sont toujours renvoyées lorsque l'application change , de sorte que vous pouvez écouter celle-là:
vous pouvez définir quelque chose comme ça jusqu'à:
def awakeFromNib(self):
NSDistributedNotificationCenter.defaultCenter().addObserver_selector_name_object_(
self, 'someNotification:', None, None)
def someNotification_(self, notification):
NSLog(notification.name())
une fois que vous avez trouvé une notification qui se déclenche toujours lorsque les applications sont activées, vous pouvez remplacer le premier « Aucun 'dans l'appel addObserver_etc_ avec le nom de cette notification et vérifiez l'application la plus en avant dans votre méthode' someNotification_ '.
Dans mon cas, je remarquai que la « AppleSelectedInputSourcesChangedNotification » a tiré à chaque fois que je suis passé des applications, donc j'écouterait que ..
Gardez à l'esprit que cela peut briser tout moment et vous serez prolly vérifierons pour une changer dans la première application plus souvent que nécessaire.
Il doit y avoir une meilleure façon si .. heureusement :)
- 1. Détecter quand AJAX change HTML dans un DIV dans WebBrowser
- 2. python fileinput change la permission
- 3. comment trouver le clavier dans/dev sur osx
- 4. Écrasement accidentel du framework système OSX Python
- 5. Impossible d'installer l'accès python berkeleydb sur osx
- 6. Python Trouver Question
- 7. Comment détecter quand la hauteur de votre page change?
- 8. Quand le vaIue de la propriété InvokeRequired change-t-il?
- 9. Comment détecter quand une variable change de valeur
- 10. Y at-il un moyen d'attraper quand ContainsFocus change?
- 11. MySQL mettre à jour une ligne quand une autre change
- 12. Delphi: Comment savoir quand un TEdit change de taille?
- 13. Evénement jQuery pour détecter quand la position de l'élément change
- 14. Récupère le moniteur d'activité (Mac OSX) via Java
- 15. Extension Vim (via Python)?
- 16. Python: trouver un élément dans un tableau
- 17. SharePoint via SOAP en utilisant Python
- 18. Trouver l'identifiant du compteur perfmon via winreg
- 19. cvs pour Mac OSX
- 20. quand utiliser une autre distribution Python?
- 21. Bash dans Emacs + OSX ne trouve pas les gems installés via terminal.app?
- 22. Comment trouver mon chemin python en utilisant python?
- 23. Mono - OSX - ODBC
- 24. Pourquoi ASP.NET re-compile (re-JIT) tout quand une seule chose change?
- 25. Transfert de fichiers en vrac Amazon Python S3 via Python
- 26. IE bordure d'opacité change
- 27. trouver des sous-chaînes en python
- 28. trouver manquant numérique de ALPHANUMERIC - Python
- 29. trouver dans des fichiers en utilisant Ruby ou Python
- 30. Python, trouver un fichier dans le même répertoire