Si un programa se ejecuta por primera vez en Windows 7, ocultará automáticamente el icono. ¿Hay alguna opción u opción de manifiesto para forzar a Windows 7 a mostrar siempre el ícono de forma predeterminada?¿Cómo mostrar siempre los íconos de la bandeja del programa en Windows por * default *?
Respuesta
En el podcast de .NET Rocks, no hace mucho tiempo, Kate Gregory de Microsoft decía que era imposible.
Ella dijo algo así como: "Si el usuario lo quiere (ícono de la bandeja), lo pondrá allí". La razón de esto es para evitar el desorden en el área de la bandeja.
Si realmente quiere mostrar su bandeja-icono, puede popup de un globo con un mínimo de texto y justo después ocultar el globo y es la sombra de nuevo siguiendo código ejemplo:
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 se repite este (por ejemplo, cada 30 segundos), su icono de bandeja permanecerá allí porque Explorer.exe piensa que hay un globo abierto para mostrar al usuario. Todavía existen algunos problemas menores, como no hacer clic derecho en el icono.
Realmente solía mostrar el ícono de la bandeja para nuestro software de compañía donde el usuario no tiene la intención de hacer esto manualmente y para cada actualización. Entonces quizás esto ayude a alguien ... :)
De lo contrario, estoy totalmente de acuerdo: Esto debería ser solo en manos del usuario, no controlado por la aplicación.
A question marked as duplicate tiene la respuesta de cómo se hace.
Here's a link (alternate link) que explica cómo y here's C# code.
El primer enlace está roto, ¿puedes arreglarlo? – mingxiao
Ciertamente no es "imposible". Hay una interfaz COM indocumentada ITrayNotify
para recuperar los iconos de la bandeja y cambiar su visibilidad, utilizada por Explorer. Completo C++ fuente aquí: http://thread0.me/tag/windows/
Por supuesto, el uso de una API no oficial es arriesgado y Windows 8 ha instaurado rompiendo cambios a esta API, lo que significa que tiene que utilizar 2 definiciones diferentes para XP - Win7 y Win8 - Win10. Pero bueno, incluso Chrome uses this trick. Solo asegúrese de manejar las fallas correctamente.
- 1. Ocultar mi programa en la Bandeja del sistema en Windows
- 2. ¿Por qué preferences.getString ("clave", "DEFAULT") siempre devuelve "DEFAULT"?
- 3. ¿Cómo solicito a Windows el tamaño de los iconos de la bandeja del sistema?
- 4. C# Liberando el texto notifyIcons (íconos de la bandeja)
- 5. cómo adquirir la lista de íconos del área de notificación?
- 6. Poner un programa en la bandeja del sistema al inicio
- 7. Fuerza de Windows para mostrar un icono de la bandeja del sistema
- 8. Mejor tamaño de icono para mostrar en la bandeja
- 9. ¿Mostrar íconos en los menús contextuales del dock en OS X?
- 10. Visualización de íconos en la aplicación WinForms
- 11. Poniendo el foco en los iconos de la bandeja en Windows XP utilizando Python
- 12. Determinar la ubicación del icono de bandeja
- 13. ¿Cómo supervisar la ejecución del proceso/programa en Windows?
- 14. Cómo mostrar siempre la barra de desplazamiento
- 15. Animación del icono de bandeja
- 16. JavaFX aplicación en la bandeja del sistema
- 17. Tkinter: ¿Cómo hacer una aplicación de bandeja del sistema?
- 18. íconos de la tecla del teclado
- 19. WPF ListView Mostrar siempre los elementos completos
- 20. ¿Ocultar o no ocultar la bandeja del sistema en una aplicación de Windows Phone 7?
- 21. detectar la terminación del programa (C, Windows)
- 22. Mostrar el contenido del portapapeles de Windows
- 23. Mostrar siempre decimales en SQL?
- 24. ¿Cómo obtengo íconos comunes de tipo de archivo en C#?
- 25. ¿Cómo obtener los íconos de unidad como se usan en Windows Explorer?
- 26. La manera más fácil de hacer que un programa se minimice en la bandeja del sistema usando .NET 4
- 27. Python optparse default de los valores por defecto de función
- 28. ¿Puedo usar los íconos de archivo save/new/etc del sistema por defecto en WPF?
- 29. Cómo ocultar un JFrame en la bandeja del sistema de la barra de tareas
- 30. ¿Cómo coloco una aplicación Java en la bandeja del sistema?
En mi opinión, esto es algo fantástico. Se ha abusado de la bandeja del sistema, y siempre he intentado configurar todo para que "siempre se oculte" para intentar recuperar la pantalla de bienes inmuebles –
Jamie, estoy de acuerdo, pero tenga en cuenta que hay tipos de aplicaciones donde se requiere básicamente un icono de bandeja como el único acceso al programa principal. Y estoy seguro de que el Win7 creará una carga de soporte MASSIVE "¿Dónde está el icono?". –
Bueno, en realidad es posible ... si el usuario puede configurar qué iconos de bandeja quiere mostrar, debe ser posible configurarlo por código (probablemente cambiando algún valor de registro) –