Comment puis-je masquer les icônes de plateau d'autres applications / processus (de mon application)?

StackOverflow https://stackoverflow.com/questions/3465860

  •  27-09-2019
  •  | 
  •  

Question

quelqu'un peut me montrer comment cacher / afficher les icônes de la barre d'autres applications / processus à l'aide de mon application, je veux cacher la « » connecté à internet''icon (ces deux ordinateurs qui deviennent bleus lorsque les données sont envoyées / recieved / les deux) de mon application
modifier : Je peux cacher l'horloge système en utilisant cet extrait tiré de http: // Scalabium .com / faq / dct0147.htm

ShowWindow(FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil), 0, 'TrayClockWClass', nil), SW_HIDE);

Je suppose que je peux utiliser ce code pour cacher « » internect icône de connexion « » (par la façon dont c'est cette icône appelée?) Et en remplaçant TrayClockWClass mais par quelle classe? J'ai essayé de trouver le nom de classe à l'aide de cet outil appelé WinDowse mais pas de chance
Edit2 : Je peux cacher les icônes dans les fenêtres par leftclicking propriétés, puis en sélectionnant « fenêtre de plateau » et sur des propriétés de fenêtres en cliquant sur le bouton « customize » puis changer la propriété des icônes de « cacher quand il est inactif » à « toujours cacher » peut Je le fais dans delphi ou encore mieux que je peux masquer / afficher (complètement) cette icône chaque fois que je veux (en utilisant delphi)

Était-ce utile?

La solution

L'API n'expose pas accès aux icônes des autres applications. La seule option est de sous-classe elle-même plateau le système pour intercepter les messages de fenêtre qui Shell_NotifyIcon () envoie afin que vous puissiez garder une trace dont HWNDs enregistrent les ID icône.

Autres conseils

L'exemple d'horloge vous avez cité les travaux, car, bien que l'icône d'horloge est dans la même zone que le plateau de notification, il est en fait la même fenêtre, mais une fenêtre séparée en elle-même. Vous ne pouvez pas cacher une seule icône en utilisant la même méthode, car ils sont tous traités dans son ensemble.

Vous pouvez masquer le plateau entier notification, si:

ShowWindow(FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil), 0, 'SysPager', nil), SW_HIDE);

Si vous êtes en charge de l'ordinateur que vous utilisez, vous juste cliquez sur l'icône et le désactiver manuellement. On peut supposer que cela écrit certains paramètres dans le registre (utilisation procmon pour savoir), de sorte que vous pouvez automatiser via Active Directory.

Si vous n'êtes pas responsable, ce qui signifie qu'il ne vous appartient pas et que quelques-uns ordinateur au hasard, et votre application décide volontairement d'aller de l'avant et les icônes cacher ne aime pas, alors non, il n'y a pas d'API pour le faire, et la vis vous même pour essayer. Il appartient à l'utilisateur de décider quand il veut cacher l'icône, pas à votre programme super cool.

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