Frage

Wenn ein Programm zum ersten Mal in Windows 7 ausgeführt wird, blendet es automatisch das Symbol. Gibt es eine offensichtliche Einstellung oder Option zu zwingen, Windows 7 immer zeigt das Symbol standardmäßig?

War es hilfreich?

Lösung

In .NET Rock podcast, nicht lange her, Kate Gregory von Microsoft sagt, dass es unmöglich ist.

Sie sagte so etwas wie: „Wenn der Benutzer es will (Tray-Icon) er / sie ihn dort wird“. Grund hierfür ist, Chaos im Tray-Bereich zu verhindern.

Andere Tipps

Wenn Sie wirklich Ihren Tray-Icon angezeigt werden sollen, können Sie einen Ballon mit minimalem Text Popup können und nur danach den Ballon verstecken und es ist Schatten wieder durch folgende Code-Beispiel:

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

Wenn Sie diese wiederholen (zum Beispiel alle 30 Sekunden), wird Ihr trayicon dort bleiben, weil Explorer.exe denkt, gibt es einen Ballon offen für den Benutzer anzuzeigen. Ein paar kleinere Probleme - wie kein Rechtsklick direkt auf das Symbol - sind immer noch da

.

Ich habe wirklich das Tray-Icon für unser Unternehmen-Software zu zeigen, wo der Benutzer ist dies nicht beabsichtigt zu tun manuell und für jedes Update. Vielleicht wird dies jemand helfen ...:)

Ansonsten Ich bin vollkommen einverstanden: Dies ist nur in den Händen des Benutzers sein soll, nicht durch die Anwendung gesteuert

.

Es ist sicherlich nicht „unmöglich“. Es ist eine nicht dokumentierte COM-Schnittstelle ITrayNotify für Tray-Icons Abrufen und ihre Sichtbarkeit zu ändern, verwendet von Explorer selbst. Voll C ++ Quelle hier: http://thread0.me/tag/windows/

Natürlich eine inoffizielle API ist riskant und Windows 8 Änderungen an diesem API intoduced hat zu brechen, was bedeutet, dass Sie zwei unterschiedliche Definitionen für XP verwenden müssen - Win7 und Win8 - Win10. Aber hey, auch Chrome verwendet diese Trick . Nur sicher sein, Ausfälle richtig zu handhaben.

Frage markiert als Duplikat hat die Antwort, wie es gemacht wird.

  

Hier ist ein Link ( alternativer Link ), die erklärt, wie und hier ist C # -Code .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top