Comment afficher toujours icônes de la barre de programme dans Windows par défaut * *?

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

  •  05-09-2019
  •  | 
  •  

Question

Si un programme est exécuté pour la première fois dans Windows 7, il cache automatiquement l'icône. Y at-il un manifeste ou une option pour forcer Windows 7 à toujours afficher l'icône par défaut?

Était-ce utile?

La solution

Dans un podcast Rocks .NET, pas il y a longtemps, Kate Gregory de Microsoft a dit qu'il est impossible.

Elle a dit quelque chose comme: « Si l'utilisateur veut (icône de la barre), il / elle a mis là ». La raison pour cela est d'éviter désordre dans la zone du plateau.

Autres conseils

Si vous voulez vraiment montrer votre plateau icône, vous pouvez apparaitre un ballon avec un minimum de texte et juste après cacher le ballon et son ombre à nouveau en suivant-exemple de code:

trayIcon.ShowBalloonTip(30000, "", ".", ToolTipIcon.None)

Dim balloonHandle As IntPtr = GetBalloonHwnd(balloonText) ' mainly: FindWindow("tooltips_class32", Nothing)

If (balloonHandle <> IntPtr.Zero) Then
  Dim sysShadowClassHwnd As IntPtr = FindWindow("SysShadow", Nothing)

  ' will hide balloon and leaving a small shadow artifact - just for this balloon
  PostMessage(balloonHandle, WM_SETREDRAW, IntPtr.Zero, IntPtr.Zero)
  SetWindowPos(balloonHandle, IntPtr.Zero, 0, 0, 0, 0, SWP_HIDEWINDOW)

  If (sysShadowClassHwnd <> IntPtr.Zero) Then
    ' this will remove the small shadow artifact
    PostMessage(sysShadowClassHwnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero)
  End If
End If

si vous répétez ce (par exemple toutes les 30 secondes), votre trayicon restera là parce que Explorer.exe pense, il y a un ballon ouvert à afficher à l'utilisateur. Quelques problèmes mineurs - comme l'absence d'un clic droit sur l'icône directement - sont toujours là

.

J'ai vraiment utilisé pour afficher l'icône de la barre pour notre entreprise logiciel où l'utilisateur ne sont pas destinés à le faire manuellement et pour chaque mise à jour. Alors peut-être que cela aidera quelqu'un ...:)

Dans le cas contraire, je suis totalement d'accord: Cela devrait être que dans les mains de l'utilisateur, et non contrôlé par l'application

.

Il est certainement pas "impossible". Il existe une interface COM sans papier ITrayNotify pour récupérer les icônes de plateau et de changer leur visibilité, utilisée par l'explorateur lui-même. source complet C ++ ici: http://thread0.me/tag/windows/

Bien sûr, en utilisant une API non officielle est risqué et Windows 8 a des modifications à casser volontairement introduites cette API, ce qui signifie que vous devez utiliser 2 définitions différentes pour XP - Win7 et Win8 - Win10. Mais bon, même Chrome utilise truc. Assurez-vous de gérer correctement les échecs.

marqué comme doublon a la réponse de la façon dont il est fait.

  

Voici un lien ( lien alternatif ) qui explique comment et voici C # Code .

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