Question

J'ai toujours été curieux de voir si je pouvais afficher, masquer ou modifier un NotifyIcon créé par une autre application via une application C #.

Quelqu'un pourrait-il s'il vous plaît poster un exemple sur la façon de procéder? :)

Était-ce utile?

La solution

Pour modifier les icônes du tableau de bord, vous pouvez utiliser Shell_NotifyIcon . API Win32 ( déclaration P / Invoke ). Les icônes sont associées à un handle de fenêtre et à un identifiant. Cela signifie que pour modifier ou masquer l'icône d'un autre programme, vous devez connaître la fenêtre et l'identifiant utilisé par cette application pour l'enregistrer. Vous pourrez peut-être le forcer brutalement en énumérant toutes les fenêtres de ce processus et en effectuant des appels avec chaque descripteur et chaque numéro compris entre 0 et 5 000 milliers, par exemple, mais vos chances de succès sont très minces.

Autres conseils

Vous pouvez accrocher la fenêtre SystemTray pour intercepter toutes les demandes Shell_NotifyIcon (). Ensuite, vous connaîtrez les HWND et les identifiants enregistrés pour chaque icône. Les détails peuvent être trouvés via n'importe quel moteur de recherche.

Je ne suis au courant de rien, sauf si cette autre application expose une méthode publique ou si vous essayez d'utiliser la réflexion, mais je ne suis même pas sûr que vous puissiez le faire sur un processus en cours d'exécution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top