将Java应用程序转换为Windows屏幕保护程序

问题描述:

我编写了一个程序,用深度优先搜索来解决迷宫问题。我想知道如何将这个Java程序变成屏幕保护程序?当屏幕保护程序通常被激活时,Windows 7是否启动我的应用程序?将Java应用程序转换为Windows屏幕保护程序

+0

什么平台?视窗?苹果电脑? Linux呢? Commodore 64? – 2010-01-25 22:02:04

+0

@Byron Whitlock:对不起,忘了提及:Windows 7.我编辑了我的问题。 – citronas 2010-01-25 22:06:16

+0

你有没有把你的Java应用程序变成屏幕保护程序?我正在尝试做同样的事情,并有兴趣听听它是如何为你服务的。 – LarsH 2012-03-06 04:06:38

Windows屏幕保护程序只是接受某些command line arguments的程序。所以为了让你的程序可以作为屏幕保护程序运行,你必须编写它来接受这些参数。

接下来,您可能希望屏幕保护程序以全屏模式运行。这是非常简单的在Java中做如下例所示:

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); 
    } 
} 

最后,你需要让你的Java程序到使用的东西一个Windows可执行文件一样Launch4j,并给它.scr扩展。

+1

似乎不仅仅是接受某些命令那么它必须能够在父窗口中显示它的预览,而不是在它自己的框架中,对吗?你如何做到这一点?没有JDIC。另外,在设置模式下,你在哪里存储(保留)设置? – LarsH 2012-03-07 04:31:40

Windows屏保只是exe文件,它接受某些命令行参数,detailed here

如果你可以将你的java应用程序编译成一个exe文件(我不再使用java了,所以我不知道有什么工具存在),然后将它重命名为.scr,那样做。 或者,它可能足以只是为了让一个.bat文件,如:

@echo off 
java myProg.class %1 

..它重命名为.scr

我从来没有使用这个,但它可能是开始的地方。 Screen Saver API


链接到屏保SDK看起来所以我链接到索引页被现在坏了:JDIC。当他们修复他们的链接时,我会调整它。

+0

我读过JDIC基本已经死了 – LarsH 2012-03-08 05:54:48

+1

404没有在链接中找到 – Miles 2012-12-14 19:23:27

我想看看用于在Java中创建屏幕保护程序的SaverBeans API。

这种方法的替代方案之一是新的JavaFX。您可以像使用Swing一样创建精美的屏幕保护程序。最重要的是,使用NetBeans很容易获得* .exe文件。

使用JScreenSaver library.JScreenSaver是中间件使屏幕保护程序的Windows在Java语言