⑴ 如何用java写一个定时关机的小程序
Runtime run=Runtime.getRuntime();
try {
run.exec("Shutdown.exe -s -t "兆行+t);
} catch (IOException e) {
e.printStackTrace();
}
/蔽猜腊/T是时间宏滑 秒
⑵ java定时关机问题
以下是给你修陵正答改过的 ,清粗还加了一个取消尺慧功能,看看。
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
public class ClockFrame extends JFrame {
private JComboBox hourBox, minuteBox, secondBox;
private int hour, minute, second, totalSeconds, currentSeconds;
private long argue;
private GregorianCalendar calendar;
private boolean change = true;
private static final int WIDTH = 200;
private static final int HEIGHT = 150;
public ClockFrame() {
setTitle("关机定时");
setSize(200, 150);
Container contentPanel = getContentPane();
JPanel timePanel = new JPanel();
timePanel.setLayout(new GridLayout(4, 2));
JLabel minuteLable = new JLabel("设置分钟");
timePanel.add(minuteLable);
minuteBox = new JComboBox();
timePanel.add(minuteBox);
for (int i = 0; i < 60; i++) {
minuteBox.addItem(i);
}
minuteBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
minute = ((Integer) minuteBox.getSelectedItem()).intValue();
}
});
JLabel secondLable = new JLabel("设置秒钟");
timePanel.add(secondLable);
secondBox = new JComboBox();
timePanel.add(secondBox);
for (int i = 0; i < 60; i++) {
secondBox.addItem(i);
}
secondBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
second = ((Integer) secondBox.getSelectedItem()).intValue();
}
});
contentPanel.add(timePanel, BorderLayout.CENTER);
JButton check = new JButton("确定");
contentPanel.add(check, BorderLayout.SOUTH);
check.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
JButton check=(JButton) evt.getSource();
if (check.getText().equals("确定")) {
calendar = new GregorianCalendar();
int currentSeconds = calendar.get(Calendar.HOUR_OF_DAY)
* 3600 + calendar.get(Calendar.MINUTE) * 60
+ calendar.get(Calendar.SECOND);
totalSeconds = hour * 3600 + minute * 60 + second;
if (totalSeconds - currentSeconds >= 0) {
argue = (totalSeconds - currentSeconds) * 1000;
JOptionPane.showMessageDialog(ClockFrame.this,
"您设置的时间为 " + hour + ":" + minute + ":" + second
+ "\n程序将在后台运行,并在此时自动关闭计算机!", "设置成功",
JOptionPane.INFORMATION_MESSAGE);
hideFrame();
}
try {
// Thread.sleep(argue);//这句没用
Runtime.getRuntime().exec(
"shutdown.exe -s -c \"我要关机了噢!不好意思!\" -t "
+ totalSeconds);
check.setText("取消");
} catch (Exception e) {
e.printStackTrace();
}
}else{
try {
Runtime.getRuntime().exec("shutdown.exe -a");
check.setText("确定");
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
private void hideFrame() {
this.setVisible(false);
}
public static void main(String[] args) {
JFrame frame = new ClockFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.show();
}
}
⑶ java语言的自动关机的代码
public class RuntimeTest {
public static void main(String[] args)
{
Runtime rt=Runtime.getRuntime();
try
{
rt.exec("shutdown.exe -s -t 40");
/*40的单位为秒,可以改成你想要的任何数字。
如果是想定时关机,可用这句:rt.exec("at 19:00 shutdown.exe -s");19:00可以换成你想要的时间*/
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
⑷ 如何用Java编写一个定时开关机软件(pc版)
定时开机是BIOS设置的。
定时关机这个好写。。。。
启动时检测一次当前时间,算出距离目标时间的值。
然后线程休眠这么长时间。
然后执行控制台命令,调用windows系统自带的关机命令就可以了。
java调用控制台的关机命令如下
Runtime.getRuntime().exec("shutdown -s");
lang包下的,直接可以用~
系统是winXP+JVM1.5
⑸ java实现关机
import java.util.*;
import java.io.*;
class Shutdown
{
public static void main(String[] args)
{
System.out.println("Shutdown in 10s");
try{
Runtime.getRuntime().exec("cmd /c Shutdown -t 10");
}catch(IOException e){}
}
}
上面这个程序实现你所说的定时10秒关机
至于定时开机...你告诉我怎么在关机的状态下执行我的程序,我就把开机的程序给你写出来.
⑹ 怎样用java实现windows每日定时关机
shutdown -s -t 3600 (3600是秒,可以顷晌带自雀芦己随便该)
shutdown -a 是取消关机谨闷命令
⑺ JAVA语句怎么实现让电脑定时开机和定时关机
要实现电脑的定时开机功能,首先应确定电脑使用的电源是ATX电源,而且主板支持时钟唤醒功能,而且操作系统是Windows 98或以上版本的操作系统,然后在开机时进入BIOS设置,选择“Power Management Setup”项后,将“Resume By Alarm”项设为打开状态,即设置为“Enabled”。然后在时间设定中的“Data”项中选0,在“Time”中设定定时开机的时间,设置好后按【F10】键保存退出,即可实现电脑定时开机功能。需注意的是不要将电脑的电源插头拨了。
定时关机:首先在“开始”菜单点击“运行”,输入“at xx:xx shoutdown -s” 可以实现定时关机,xx:xx指的是具体关机时间。还可以输入“shoutdown.exe -s -t xxxx”。xxxx指的是欲多久后关机的秒数。如果运行程序后想取消,则输入“shutdown -a”即可(注意以上输入时不包括引号)。本人在上网的时候运用了此招,就再也没发生上网失控的现象了。 如果要在Windows 2000下运行的话,只需将Windows XP c:\windows\system32目录下的“shutdown.exe”文件拷贝到Windows 2000下的c:\winnt\system32目录下即可。
⑻ java 窗口 倒计时 关闭
package mainWindow;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.io.IOException;
import java.awt.event.*;
import javax.swing.event.*;
/备改*程序文件:ShutDownWindow.java
*程序功能:程序的定时关机窗体
*更新时间:2009.10.26
*/
public class ShutDownWindow extends JFrame implements ActionListener,DocumentListener{
/**
*
*/
private static final long serialVersionUID = 2084958924713854452L;
JTextField 时,分,秒;
JLabel 现在时间,设置时,设置分,设置秒;
JButton 关机,重启,注销,清空,取消;
Box 左,中,右,中部; //Box是使用 BoxLayout 对象作为其布局管理器的一个轻量级容器
JPanel 底部;
Container 容器;
int 标志,nh,nm,ns,wh,wm,ws;
ShutDownWindow(String s){
super(s);
setVisible(true);
setResizable(false); //设置窗体是否允许用户调整窗体大小
setSize(300,200);
Dimension 屏幕=Toolkit.getDefaultToolkit().getScreenSize(); //获得屏幕大小
setLocation(屏幕.width-300,0);
现在时间=new JLabel();
现在时间.setForeground(Color.RED);
现在时间.setText(nowTime());
时=new JTextField(4);
时.setForeground(Color.BLUE);
时.setText(null);
分=new JTextField(4);
分.setForeground(Color.BLUE);
分.setText(null);
秒=new JTextField(4);
秒.setForeground(Color.BLUE);
秒.setText(null);
设置时=new JLabel("设定小时");
设置分=new JLabel("设定分钟");
设置秒=new JLabel("设定秒钟");
关机=new JButton("关机");
重启=new JButton("重启");
注销=new JButton("注销");
取消=new JButton("取消");
清空=new JButton("清空"兄胡);
关机.setEnabled(false);
重启.setEnabled(false);
取消.setEnabled(false);
注销.setEnabled(false);
清空.setEnabled(false);//按钮羡滚拦不可用
中部=Box.createHorizontalBox(); //创建一个从左到右显示其组件的 Box
validate();
容器=getContentPane();
容器.setLayout(new BorderLayout());
左=Box.createVerticalBox(); //创建一个从左到右显示其组件的 Box
中=Box.createVerticalBox();
右=Box.createVerticalBox();
左.add(设置时);
左.add(Box.createVerticalStrut(20)); //创建一个不可见的、固定高度的组件
左.add(设置分);
左.add(Box.createVerticalStrut(20));
左.add(设置秒);
中.add(时);
中.add(Box.createVerticalStrut(9));
中.add(分);
中.add(Box.createVerticalStrut(9));
中.add(秒);
右.add(关机);
右.add(Box.createVerticalStrut(10));
右.add(重启);
右.add(Box.createVerticalStrut(10));
右.add(注销);
validate(); //使用 validate 方法会使容器再次布置其子组件
中部.add(左);
中部.add(Box.createHorizontalStrut(15));
中部.add(中);
中部.add(Box.createHorizontalStrut(15));
中部.add(右);
中部.validate();
底部=new JPanel();
底部.setBackground(Color.GREEN);
底部.add(清空);
底部.add(取消);
底部.validate();
容器.add(现在时间,BorderLayout.NORTH);
容器.add(中部,BorderLayout.CENTER);
容器.add(底部,BorderLayout.SOUTH);
容器.validate();
容器.setBackground(Color.GRAY);
关机.addActionListener(this); //为各按钮标签添加监听对象
重启.addActionListener(this);
注销.addActionListener(this);
取消.addActionListener(this);
清空.addActionListener(this);
时.getDocument().addDocumentListener(this);
分.getDocument().addDocumentListener(this);
秒.getDocument().addDocumentListener(this);
//******************* 匿名线程,实现时间动态显示 *******************//
new Thread(new Runnable() {
public void run()
{
while(true) //为了实时监听所以得用死循环
{
try
{
Thread.sleep(1000); //条件合适后线程休眠1秒钟
}
catch(Exception e)
{
e.printStackTrace(); //输入异常到指定地方
}
nowTime(); //调用nowTime()方法获得当前时间
}
}
}).start(); //调用start()后线程处于就绪状态
}
//******************** 得到当前系统时间并显示 *********************//
public String nowTime(){
Calendar 日历=Calendar.getInstance(); //使用默认时区和语言环境获得一个日历
int ny=日历.get(Calendar.YEAR);
int nmo=日历.get(Calendar.MONTH)+1; //因为月是从0开始算起的,所以得加上1
int nd=日历.get(Calendar.DAY_OF_MONTH);
nh=日历.get(Calendar.HOUR_OF_DAY);
nm=日历.get(Calendar.MINUTE);
ns=日历.get(Calendar.SECOND);
String ss=new String(" 现在是"+ny+"年"+nmo+"月"+nd+"日 "+nh+"时"+nm+"分"+ns+"秒");
现在时间.setText(ss); //把获得的时间赋给“现在时间”标签
return ss;
}
//************** 响应Document事件,需重写三个方法 *************//
public void changedUpdate(DocumentEvent e){
if(时.getText().equals("")||分.getText().equals("")||秒.getText().equals(""))
{
关机.setEnabled(false);
重启.setEnabled(false);
清空.setEnabled(false);
注销.setEnabled(false);
取消.setEnabled(false);
}
else
{
关机.setEnabled(true);
重启.setEnabled(true);
清空.setEnabled(true);
注销.setEnabled(true);
}
}
public void removeUpdate(DocumentEvent e){
changedUpdate(e);
}
public void insertUpdate(DocumentEvent e){
changedUpdate(e);
}
//*********** 响应事件要执行的方法 *****************//
public void 关机程序(){ //关机
try{Runtime.getRuntime().exec("shutdown.exe -s -t 5");}
catch(IOException e){
JOptionPane.showMessageDialog(this,"执行失败!");
}
}
public void 重启程序(){ //重启
try{Runtime.getRuntime().exec("shutdown.exe -r -t 5");}
catch(IOException e){
JOptionPane.showMessageDialog(this,"执行失败!");
}
}
public void 注销程序(){ //注销
try{Runtime.getRuntime().exec("shutdown.exe -l");}
catch(IOException e){
JOptionPane.showMessageDialog(this,"执行失败!");
}
}
public void 取消程序(){ //取消
try{Runtime.getRuntime().exec("shutdown.exe -a");}
catch(IOException e){
JOptionPane.showMessageDialog(this,"执行失败!");
}
}
//*****************时间到就执行的方法**************//
public void 到时执行(){
if(nh==wh && nm==wm && ns==ws){ //如果设定的时间和现在时间相同就执行
if(标志==1){
关机程序();
}
if(标志==2){
重启程序();
}
if(标志==3){
注销程序();
}
}
}
//****************** 响应各按钮的单击事件 ****************//
public void actionPerformed(ActionEvent e)
{
wh=Integer.parseInt(时.getText());
wm=Integer.parseInt(分.getText());
ws=Integer.parseInt(秒.getText());
if(e.getSource()==关机){
关机.setEnabled(false);
重启.setEnabled(false);
注销.setEnabled(false);
标志=1;
if(wh>=0&&wh<=23&&wm>=0&&wm<=59&&ws>=0&&ws<=59){
动作();
}
else{
JOptionPane.showMessageDialog(this,"时间设置满足:0=<小时<24,0=<分钟<60,0=<秒<60!","温馨提示",JOptionPane.WARNING_MESSAGE);
时.requestFocus(); //获得焦点
}
}
if(e.getSource()==重启){
关机.setEnabled(false);
重启.setEnabled(false);
注销.setEnabled(false);
标志=2;
if(wh>=0&&wh<=23&&wm>=0&&wm<=59&&ws>=0&&ws<=59){
动作();
}
else
{
JOptionPane.showMessageDialog(this,"时间设置满足:0=<小时<24,0=<分钟<60,0=<秒<60!","温馨提示",JOptionPane.WARNING_MESSAGE);
时.requestFocus(); //获得焦点
}
}
if(e.getSource()==注销){
关机.setEnabled(false);
重启.setEnabled(false);
注销.setEnabled(false);
标志=3;
if(wh>=0&&wh<=23&&wm>=0&&wm<=59&&ws>=0&&ws<=59){
动作();
}
else
{
JOptionPane.showMessageDialog(this,"时间设置满足:0=<小时<24,0=<分钟<60,0=<秒<60!","温馨提示",JOptionPane.WARNING_MESSAGE);
时.requestFocus(); //获得焦点
}
}
if(e.getSource()==取消){
取消程序();
取消.setEnabled(false);
关机.setEnabled(true);
重启.setEnabled(true);
注销.setEnabled(true);
}
if(e.getSource()==清空){
时.setText("");
分.setText("");
秒.setText("");
时.requestFocus();
清空.setEnabled(false);
}
}
public void 监听()//时间一到就执行动作
{
new Thread(new Runnable()
{
public void run()
{
while(true)
{
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
e.printStackTrace();
}
到时执行();//关机或重启或注销
}
}
}).start();
}
public void 动作() //检查用户输入是否正确,在正确情况下时间到便执行
{
if(Test()==false)
{
JOptionPane.showMessageDialog(this,"时间设定错误,应设定在现在之后!");
时.requestFocus();
}
else{
JOptionPane.showMessageDialog(this,"时间设定成功!");
取消.setEnabled(true); //定义时间成功后取消按钮可点击
监听();
}
}
public boolean Test(){
boolean b=true;
if(wh<nh) //判断当前小时是否小于设定小时
b=false;
else if(wh==nh)
{
if(wm<nm) //判断当前分钟是否小于设定分钟
b=false;
else if(wm==nm)
{
if(ws<ns+5) //要有延迟
b=false;
}
}
return b;
}
}