2010-01-25 9 views
14

Escribí un programa que resuelve los laberintos con búsqueda en profundidad. Me preguntaba cómo convertir este programa Java en una aplicación de protector de pantalla. ¿Hay alguna manera de que Windows 7 inicie mi aplicación cuando normalmente se activa el protector de pantalla?Convierta la aplicación Java en el salvapantallas de Windows

+0

¿En qué plataforma? ventanas? ¿Mac? linux? comodoro 64? –

+0

@Byron Whitlock: Oh, lo siento, olvidé mencionar: Windows 7. Edité mi pregunta. – citronas

+0

¿Alguna vez hizo que su aplicación Java se convirtiera en un protector de pantalla? Intento hacer lo mismo y me interesaría saber cómo te fue. – LarsH

Respuesta

16

Un protector de pantalla de Windows es solo un programa que acepta ciertos command line arguments. Entonces, para que su programa sea ejecutable como un protector de pantalla, debe codificarlo para aceptar esos argumentos.

A continuación, probablemente desee que su protector de pantalla se ejecute en modo de pantalla completa. Esto es muy sencillo de hacer en Java como muestra el siguiente ejemplo:

public final class ScreenSaver { 

    public static final void main(final String[] args) throws Exception { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

     final JFrame screenSaverFrame = new JFrame(); 
     screenSaverFrame.setDefaultCloseOperation(
      WindowConstants.EXIT_ON_CLOSE); 
     screenSaverFrame.setUndecorated(true); 
     screenSaverFrame.setResizable(false); 
     screenSaverFrame.add(new JLabel("This is a Java Screensaver!", 
           SwingConstants.CENTER), BorderLayout.CENTER); 
     screenSaverFrame.validate(); 
     GraphicsEnvironment.getLocalGraphicsEnvironment() 
        .getDefaultScreenDevice() 
        .setFullScreenWindow(screenSaverFrame); 
    } 
} 

último que se necesitan para hacer su programa Java en un archivo ejecutable de Windows usando algo como Launch4j y darle .scr extensión.

+1

Parece más allá de simplemente aceptar cierto comando argumentos de línea, tiene que poder mostrar su vista previa en una ventana primaria, en lugar de en su propio marco, ¿verdad? ¿Cómo lo hace? sin JDIC. Además, cuando está en el modo de configuración, ¿dónde almacena (persiste) el configuración? – LarsH

4

Los salvapantallas de Windows son solo archivos exe que aceptan ciertos argumentos de línea de comandos, detailed here.

Si puede compilar su aplicación java en un exe (ya no uso java, entonces no estoy seguro de qué herramientas existen), cambie el nombre a .scr, eso lo haría. O podría ser suficiente con hacer un archivo .bat como:

@echo off 
java myProg.class %1 

.. Y cambiarle el nombre a .scr.

7

Nunca he usado esto, pero podría ser el lugar para comenzar. Screen Saver API.


El enlace con el SDK de pantalla parece no estar funcionando en este momento, así que estoy al enlazar a la página de índice: JDIC. Cuando arreglen su enlace, lo ajustaré.

+0

He leído que JDIC está básicamente muerto. – LarsH

+1

404 no encontrado en el enlace. – Miles

1

Me gustaría ver la API SaverBeans para crear protectores de pantalla en Java.

0

Una de las alternativas a este enfoque es el nuevo JavaFX. Puede crear un elegante protector de pantalla de la misma manera que lo hace en Swing. Además de eso, obtienes el archivo * .exe con bastante facilidad usando NetBeans.

0

Uso del library.JScreenSaver JScreenSaver es el middleware para hacer un protector de pantalla para Windows en lenguaje Java

Cuestiones relacionadas