Comment puis-je obtenir l'icône d'une application en cours d'exécution à condition que je connaisse le Hwnd?Obtention de l'icône associée à une application en cours d'exécution à l'aide de WinAPI
2
A
Répondre
0
Si vous avez le hwnd, vous pouvez obtenir l'ID de processus en utilisant WINAPI GetWindowThreadProcessId. Avec cela, vous pouvez créer un objet Processus C#. Ensuite, vous pouvez parcourir la procédure ProcessModule Collection pour obtenir le nom de fichier de l'exécutable. Enfin, vous pouvez utiliser la fonction WINAPI ExtractIconEx pour obtenir l'icône du chemin
Pinvoke a des informations sur les deux méthodes de winapi
http://www.pinvoke.net/default.aspx/user32/GetWindowThreadProcessId.html
http://www.pinvoke.net/default.aspx/shell32/ExtractIconEx.html
2
Si vous avez la poignée à la fenêtre , vous pouvez utiliser GetClassLong:
HICON icon = (HICON)GetClassLong(window, GCL_HICON);
Questions connexes
- 1. Obtenir l'icône associée à une application en cours d'exécution
- 2. Envoi de clés à une application inactive en C#/.NET
- 3. Obtenir l'icône associée à partir d'un fichier, d'un dossier ou d'un lecteur sans WinAPI
- 4. structure de données laide à la recherche java
- 5. Obtention de XAML de l'écran en cours dans silverlight 2
- 6. Comment créer un bouton "Oui à tous" en utilisant WinAPI?
- 7. Obtention d'une liste des flux de travail en cours d'exécution?
- 8. Envoyer un message d'une application de console en cours d'exécution à une autre
- 9. Comment affecter des ressources à une tâche dans une application de suivi de bogues en cours de développement
- 10. Classe client associée à plusieurs entités
- 11. Erreur associée à Ajax Calendrier Extender
- 12. Ajout de 2 listes déroulantes à la table associée
- 13. Comment utiliser WSAAsyncSelect de WinAPI en C#?
- 14. Meilleur moyen de masquer une boîte à outils associée à un UserControl dans .NET 2.0?
- 15. Ajouter une paire associée à un tableau PHP
- 16. Entité JPA associée à OneToOne et OneToMany
- 17. Comment obtenir l'icône associée à un type de fichier?
- 18. Obtention de mesures précises à partir d'une minuterie en C#
- 19. Vérifier si une application est toujours en cours d'exécution à partir d'un fichier batch?
- 20. obtenir le type de curseur de la souris en cours
- 21. attacher une entité avec une entité associée à un contexte de nouvelle structure d'entité
- 22. Erreur tâche Rake en cours d'exécution à partir de l'IDE
- 23. Obtention d'un délégué à partir de methodinfo
- 24. Comment puis-je savoir si une propriété de contrôle Silverlight est associée à une liaison?
- 25. Accès à HttpApplicationState au cours de Session_End
- 26. NoClassDefFoundError en cours d'exécution à partir de jar
- 27. Obtention de données à partir d'un DataGrid
- 28. Comment envoyer une requête POST à un site web en utilisant winapi?
- 29. Comment ajouter une fonction de rappel à un cours javascript?
- 30. Comment imprimer sur la ligne en cours dans une application de ligne de commande?
Cela ne fonctionne que pour certaines applications (sous Windows 7), li ke Steam, Firefox, mais pas pour Visual Studio, ou Explorer, Skype. Vous pouvez en outre essayer d'utiliser WM_GETICON, comme dans cet exemple - http://codeutopia.net/blog/2007/12/18/find-an-applications-icon-with-winapi/ mais cela ne vous donne encore que de petites icônes pour autre. Même si l'application a clairement une plus grande icône (comme sur la barre des tâches), alors peut-être que le meilleur moyen est d'obtenir l'icône du fichier de l'application exe? – Zakus
Le lien est cassé – Victor