2009-09-25 4 views

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); 
+0

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

+0

Le lien est cassé – Victor

Questions connexes