突然想写个小程序,用java实现winXp的关机背景变成黑白的效果。    目前无从下手,想过是不是可以修改注册表实现,可惜没有找到相关的主键,希望大家给给思路,谢谢。

解决方案 »

  1.   

    import   java.io.IOException;   
        
        public   class   CtrWDS   {   
        
                 private   static   CtrWDS   ourInstance   =   null;   
        
                 private   CtrWDS()   {   
                 }   
        
                 public   static   CtrWDS   getInstance()   {   
                         if   (ourInstance   ==   null)   {   
                                 ourInstance   =   new   CtrWDS();   
                         }   
                         return   ourInstance;   
                 }   
        
              public   void   exec(String   cmd)   {   
                      try   {   
                              Runtime.getRuntime().exec(cmd);   
                      }     
                      catch   (IOException   e)   {   
                              System.out.println("执行失败");                   
                      }   
              }  
     public   void   shutdown()   {   
                      exec("shutdown   -S   ");   
              }   
        
              public   void   restart()   {   
                      exec("shutdown   -R   ");   
              }   
        
              public   void   logout()   {   
                      exec("shutdown   -L   ");   
              }   
        
              public   static   void   main(String[]   str)   {   
                      if   (str.length   ==   0)   {   
                              System.out.println("-----------------------\n"   +   
                                              "关机     -s\n"   +   
                                              "重起     -r\n"   +   
                                              "注销     -l\n"   +   
                                              "-----------------------\n");   
                      }     
                      else{   
                            try{   
                                    Thread.currentThread().sleep(10000L);   
                              }   
                              catch(Exception   e){   
                                    CtrWDS.getInstance().exec(str[0]);   
                              }   
                        }   
        
               }   
        
       }   
      

  2.   

    楼上的说的是用RunTime去关机,不是你想要的吧,若实现关机背景编程黑白,我有个想法:
    能不能在你要关机之前让关机的线程Thread.sleep(10000),然后,通过另一个线程重画背景色,变成什么色都没问题了
      

  3.   

    可能我没表达清楚,我是想用java实现,xp关机时候的那种背景变成黑白的效果.
      

  4.   

    要使自己的程序变色,那简单,不管你是使用swing也好,或者jsp也好(js脚本实现),应该都容易。如果你想要使整个系统变色那可就不容易了,最起码我不知道怎么使用。
      

  5.   


    用在自己的 Java 桌面程序里?
      

  6.   

    没搞清楚LZ的意思.....LZ是要自己的应用变黑白...还是XP变黑白???
      

  7.   

    用jni去调用系统api,不过你需要知道哪个api管理系统背景才行。
      

  8.   

    通过java程序,让XP的颜色效果,变成XP关机时候的颜色效果
      

  9.   

    通过java程序,让XP的颜色效果,变成XP关机时候的颜色效果
      

  10.   

    import java.awt.AWTException;
    import java.awt.Graphics;
    import java.awt.GraphicsDevice;
    import java.awt.GraphicsEnvironment;
    import java.awt.Image;
    import java.awt.Robot;
    import java.awt.Window;
    import java.awt.color.ColorSpace;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.image.BufferedImage;
    import java.awt.image.ColorConvertOp;public class Test { @SuppressWarnings("serial")
    private static class FSWindow extends Window { private Image img = null; public FSWindow(Image img) {
    super(null);
    this.img = img;
    addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    System.exit(0);
    }
    });
    } public void update(Graphics g) {
    paint(g);
    } public void paint(Graphics g) {
    if (this.img != null) {
    g.drawImage(this.img, 0, 0, this);
    }
    //super.paint(g);
    } } public static void main(String[] args) {
    GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    Image img = null;
    try {
    Robot rbt = new Robot();
    img = rbt.createScreenCapture(gd.getDefaultConfiguration().getBounds());
    ColorConvertOp ccop = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    img = ccop.filter((BufferedImage)img, null);
    } catch (AWTException e) {
    e.printStackTrace();
    }
    FSWindow fsw = new FSWindow(img);
    gd.setFullScreenWindow(fsw);
    }}
      

  11.   

    楼主什么意思?想用java关机?还是单单就要关机时的屏幕黑白效果?
    如果只要黑白效果,可以看楼上的代码,虽然是模拟的~