想用java实现winXP的关机效果 突然想写个小程序,用java实现winXp的关机背景变成黑白的效果。 目前无从下手,想过是不是可以修改注册表实现,可惜没有找到相关的主键,希望大家给给思路,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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]); } } } } 楼上的说的是用RunTime去关机,不是你想要的吧,若实现关机背景编程黑白,我有个想法:能不能在你要关机之前让关机的线程Thread.sleep(10000),然后,通过另一个线程重画背景色,变成什么色都没问题了 可能我没表达清楚,我是想用java实现,xp关机时候的那种背景变成黑白的效果. 要使自己的程序变色,那简单,不管你是使用swing也好,或者jsp也好(js脚本实现),应该都容易。如果你想要使整个系统变色那可就不容易了,最起码我不知道怎么使用。 用在自己的 Java 桌面程序里? 没搞清楚LZ的意思.....LZ是要自己的应用变黑白...还是XP变黑白??? 用jni去调用系统api,不过你需要知道哪个api管理系统背景才行。 通过java程序,让XP的颜色效果,变成XP关机时候的颜色效果 通过java程序,让XP的颜色效果,变成XP关机时候的颜色效果 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); }} 楼主什么意思?想用java关机?还是单单就要关机时的屏幕黑白效果?如果只要黑白效果,可以看楼上的代码,虽然是模拟的~ 面试中遇到关于LinkedList和ArrayList的逆序问题,请大家帮忙 关于输出流问题 hash map 的使用问题,大家帮帮忙~~谢啦 明明有<a怎么总返回false 正则表达式问题 JAVA能调用ORACLE的服务把表和存储过程创建吗? 初学者笨问题,frame如何清除自己? 如果提交多条SQL语句 菜鸟想问关于命令行参数的问题 JAVA中有没有和这个功能相近的函数? Java中什么时候需要重写toString()方法 高公求高手写一个程序,急急急! 如何隔1秒后执行一个程序呢?不是每隔一秒,就是隔1秒
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]);
}
}
}
}
能不能在你要关机之前让关机的线程Thread.sleep(10000),然后,通过另一个线程重画背景色,变成什么色都没问题了
用在自己的 Java 桌面程序里?
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);
}}
如果只要黑白效果,可以看楼上的代码,虽然是模拟的~