Estoy desarrollando una aplicación Swing y necesito actualizar la barra de tareas de Windows. No puedo usar frame.requestFocus()
porque no quiero robar el foco de ninguna otra aplicación.¿Cómo puedo flashear la barra de tareas de Windows usando Swing?
Respuesta
No sé si se aplica a las versiones más nuevas de Windows, pero el método .toFront() utiliza para mostrar la ventana si ninguna de las ventanas actuales de la máquina virtual estaba en primer plano.
Esto significa que llamar frame.toFront() en un marco minimizado siempre que parpadee ...
JNIWrapper with its winpack extension puede hacer lo que quiera.
La demostración en el sitio lo muestra en acción.
Al usar Swing per se, es muy probable que no pueda; eso es algo específico de Widnows.
Uh, y? La barra de tareas de Windows todavía es específica de Windows. –
Puede fuerza minimizar su interfaz gráfica de usuario y .toFront
-en que:
Gui.frame.setState(Frame.ICONIFIED);
for (int i = 0; i < 3; i++) {
Thread.sleep(10);
Gui.frame.toFront();
Thread.sleep(10);
Gui.frame.setVisible(false);
Thread.sleep(10);
Gui.frame.toBack();
Thread.sleep(10);
Gui.frame.setVisible(true);
}
// be creative!!
que por desgracia va a quitar el foco de la ventana activa. Puede encontrar la ventana activa y reactivarla luego. Pero aún así, el flasheo solo durará unos tres segundos.
... o llegar a la raíz de la cuestión mediante el uso de DLL -call en FlashWindow
. Llamar a dlls no es posible con el código limpio de Java, necesitará la ayuda de otros lenguajes de programación, por ejemplo, con JNA. Aparte de eso, también puede escribir su propio programa en otro idioma y llamarlo desde su aplicación Java. Voy a dar un ejemplo en el AutoHotkey a continuación:
Código AutoHotkey:
if 0 != 1 ; note: in ahk, 1 corresponds args[1] and 0 corresponds args.length
{
msgbox, There needs to be ONE parameter passed over to this file, which is the name of the window that should be flashed.
ExitApp
}
programName = %1%
winget, hWnd, ID, %programName%
DllCall("FlashWindow",UInt,hWnd,Int,True)
compilado en un archivo llamado flash.exe
, poner en su directorio de trabajo de Java, se puede llamar desde cualquier función:
Runtime.getRuntime().exec("./flash.exe \"" + MyJFrame.getTitle() + "\"");
Como alternativa, se podría utilizar AutoHotkey.dll y acceder a él dentro de Javacode (hay guías sobre cómo hacerlo en Internet), por lo que no habría necesidad de ningún archivo exe externo.
Si todavía tiene problemas para lograr el flasheo en la barra de tareas de Windows, ¡por favor hágamelo saber!
La mejor manera de hacer esto:
if (!isFocused()) {
setVisible(false);
setVisible(true);
}
- 1. ¿Cómo mover la barra de tareas de Windows mediante programación?
- 2. Altura/ancho de la barra de tareas de Windows
- 3. barra de tareas de Windows 7 progreso
- 4. ¿Cómo mostrar el progreso en la barra de tareas de Windows 7 (usando Qt)?
- 5. ¿Cómo puedo crear una aplicación Java Swing que cubra la barra de título de Windows?
- 6. ¿Cómo puedo ocultar el formulario de mi aplicación en la barra de tareas de Windows?
- 7. ¿Cómo puedo determinar mediante programación si la barra de tareas de Windows está oculta o no?
- 8. Aplicación en la barra de tareas
- 9. ¿Cómo creo una barra de herramientas para la barra de tareas en Windows?
- 10. Insertar en la barra de tareas
- 11. Fijando una aplicación Java usando Launch4j a la barra de tareas de Windows 7
- 12. .NET Barra de progreso en la barra de tareas en Windows 7
- 13. Iconos de barra de tareas de Windows 7 Resaltar Color
- 14. Cómo anclar a la barra de tareas mediante PowerShell
- 15. Widget o barra de herramientas de la barra de tareas de Windows 7
- 16. Barra de progreso de la Barra de tareas de Windows 7 en Java
- 17. Cómo obtener el botón de la barra de tareas de Windows para mostrar el progreso de la barra de progreso
- 18. Barra de progreso de Windows 7 en la barra de tareas en C#?
- 19. Barra de tareas intermitente usando Java (a pidgin || MSN)
- 20. Cubra la barra de tareas con VB
- 21. Cómo mover de forma programable la barra de tareas de Windows (tomar dos)
- 22. Cómo establecer el icono de la barra de tareas de la aplicación en Windows 7
- 23. Obtenga la altura de la barra de tareas de Windows (Winapi)
- 24. VB.NET ¿Cómo minimizar una ventana a la barra de tareas?
- 25. ¿Cómo puedo mantener las aplicaciones .NET ancladas en la barra de tareas durante la actualización automática?
- 26. ¿Obtener la lista de ventanas en la barra de tareas en Windows 7?
- 27. Ocultar la aplicación PyQt de la barra de tareas
- 28. ¿Cómo asocio mi aplicación con un programa fijado en la barra de tareas de Windows 7?
- 29. control de la agrupación de la barra de tareas de windows 7 para mi aplicación
- 30. Ocultación winforms aplicación desde la barra de tareas
Hay una desventaja de este enfoque. Si un usuario está en la aplicación, escribiendo en un JTextArea, por ejemplo, esta funcionalidad elimina el foco y altera la escritura. –