C#: Détection de l'application qui a le focus
Je suis à la recherche pour créer une application en C# qui modifie le contenu en fonction de l'application qui a actuellement le focus. Donc, si l'utilisateur est à l'aide de Firefox, mon application serait de savoir que. Même pour Chrome, Visual Studio, TweetDeck etc.
Est-ce possible, et si oui - comment puis-je l'atteindre?
J'ai le sentiment que je demande beaucoup mais il vaut la peine d'essayer.
Merci beaucoup à l'avance.
Utilisez l'accessibilité des interfaces. C'est exactement le genre de chose qu'ils sont pour.
La accepté de répondre à cette question s'étend sur @RaymondChen commentaire: stackoverflow.com/questions/11711400/...
La accepté de répondre à cette question s'étend sur @RaymondChen commentaire: stackoverflow.com/questions/11711400/...
OriginalL'auteur greggannicott | 2010-02-02
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à
Application.AddMessageFilter
, et de regarder pour WM_ACTIVATEAPP messages, qui vous dira quand une application est activée, c'est à dire reçoit le focus.Application.AddMessageFilter
seulement intercepte les messages pour le processus en cours, pas d'autres processus.OriginalL'auteur Håvard S
Cela peut être fait dans le plus pur .NET en utilisant les Automatisation cadre qui fait partie de la WPF. Ajouter des références à
UIAutomationClient
etUIAutomationTypes
et l'utilisationAutomatisation.AddAutomationFocusChangedEventHandler
, par exemple:OriginalL'auteur larsmoa
Grrr. Comme c'est souvent le chemin, j'ai passé un peu de temps sur Google avant de poster cette question.
Une fois que j'ai enfin posté la question, ma prochaine recherche de Google a révélé la réponse.
Je n'ai pas encore tester, mais il semble comme si
GetForegroundWindow()
est la clé.Plutôt que de me réécrire ce qui est déjà écrit, voici un lien vers la page qui a fourni l'information:
http://www.csharphelp.com/2006/08/get-current-window-handle-and-caption-with-windows-api-in-c/
Appologies pour tous les temps, j'ai gaspillé en demandant un Googalable (?) réponse.
OriginalL'auteur greggannicott