我這兒有一個(gè)過(guò)年前寫的定時(shí)關(guān)機(jī)程序你可以拿去參考下~
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的臨城網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
程序里的取消功能跟你要的差不多
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 此類為定時(shí)關(guān)機(jī)的主界面類
* 這幾天一直都在搞我的聊天程序源團(tuán),哎 但是技術(shù)問(wèn)題,一直都做不走
* 之前一直都想寫個(gè)定時(shí)關(guān)機(jī)程序,一直都是沒(méi)時(shí)間,
* 現(xiàn)在那邊做不走了,我就做做這個(gè)簡(jiǎn)單的,找點(diǎn)自信
* @author 程勝
* @date 09年1月24
* @address 家
* @version 0.1
*
*/
public class ShutDown extends JFrame{
private static final long serialVersionUID = 1L;
private JPanel pCenter=new JPanel();
private JPanel pNorth=new JPanel();
private JPanel pSouth=new JPanel();
private JButton bExit=new JButton("退出");
//用于顯示當(dāng)前時(shí)間
JLabel currentTime=new JLabel();
JButton bStart=new JButton("啟動(dòng)");
JButton bCancel=new JButton("取消");
JLabel info=new JLabel("雹汪橘請(qǐng)?jiān)O(shè)定關(guān)機(jī)時(shí)間…………陵答");
//此下拉框用于選擇關(guān)機(jī)的小時(shí)
JComboBox hour=null;
//此下拉框用于先擇關(guān)機(jī)的分鐘
JComboBox minute=null;
/**
* 構(gòu)造函數(shù)初始化界面
*/
public ShutDown(){
super("定時(shí)關(guān)機(jī)小程序verson0.1");
this.setSize(250,150);
addContent();
addEvent();
//改變大小不可用
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(this);
this.setVisible(true);
}
/**
* 為按鈕添加事件監(jiān)聽(tīng)
*/
private void addEvent() {
ActionListener buttonListen=new SetEvent();
bStart.addActionListener(buttonListen);
bCancel.addActionListener(buttonListen);
bExit.addActionListener(buttonListen);
}
/**
* 為界面添加內(nèi)容
*/
private void addContent() {
//新建一個(gè)匿名線程,用于顯示當(dāng)前時(shí)間
new Thread(new Runnable(){
public void run(){
SimpleDateFormat sdf=new SimpleDateFormat("MM'月'dd'日'HH:mm:ss");
//Thread.interrupted()為判斷線程是否中斷
while(!Thread.interrupted()){
//獲取當(dāng)前時(shí)間
Calendar current=Calendar.getInstance();
ShutDown.this.currentTime.setText("當(dāng)前時(shí)間為:"+sdf.format(current.getTime()));
try {
//休眠一秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
//新建用于顯示小時(shí)和分鐘的字符串?dāng)?shù)組
String[] lHour=new String[24];
String[] lMinute=new String[60];
for(int i=0;i24;i++){
lHour[i]=i+"";
}
for(int i=0;i60;i++){
lMinute[i]=i+"";
}
hour=new JComboBox(lHour);
minute=new JComboBox(lMinute);
JLabel xiaoshi=new JLabel("時(shí)");
JLabel fen=new JLabel("分");
bCancel.setEnabled(false);
pNorth.setLayout(new FlowLayout());
pNorth.add(new JLabel("請(qǐng)?jiān)O(shè)定關(guān)機(jī)時(shí)間:"));
pNorth.add(hour);pNorth.add(xiaoshi);
pNorth.add(minute);pNorth.add(fen);
pSouth.add(bStart);pSouth.add(bCancel);pSouth.add(bExit);
pCenter.setLayout(new GridLayout(2,1));
pCenter.add(currentTime);
pCenter.add(info);
this.add(pCenter,"Center");
this.add(pNorth,"North");
this.add(pSouth,"South");
}
/**
* @param args
*/
public static void main(String[] args) {
//設(shè)置外觀
JFrame.setDefaultLookAndFeelDecorated(true);
new ShutDown();
}
/**
* 內(nèi)置類,用于處理事件
* @author 程勝
*
*/
class SetEvent implements ActionListener{
//用于存放關(guān)機(jī)的操作類
private Shut shut=null;
private String hour="";
private String minute="";
//獲得界面類
private ShutDown shutDown=ShutDown.this;
public void actionPerformed(ActionEvent e) {
//如果事件為啟動(dòng)按鈕觸發(fā)
if(e.getSource()==bStart){
//獲取下拉框中的數(shù)據(jù)
hour=shutDown.hour.getSelectedItem().toString();
minute=shutDown.minute.getSelectedItem().toString();
handleStart();
}else{
//如果事件為取消按鈕觸發(fā)
if(e.getSource()==bCancel){
//取消操作
handleCancel();
}else{
//如果事件為退出按鈕觸發(fā),則退出系統(tǒng)
System.exit(0);
}
}
}
/**
* 取消按鈕的事件的處理方法
*/
private void handleCancel() {
//如果關(guān)機(jī)類還在活動(dòng)
if(shut.isAlive()){
//停止關(guān)機(jī)類線程
shut.stop();
}
//修改界面顯示
shutDown.info.setText("您取消了之前設(shè)定的定時(shí)關(guān)機(jī)!");
shutDown.hour.setEnabled(true);
shutDown.minute.setEnabled(true);
shutDown.bStart.setEnabled(true);
shutDown.bCancel.setEnabled(false);
}
/**
* 啟動(dòng)按鈕的事件的處理方法
*/
private void handleStart() {
shutDown.info.setText("您設(shè)置的關(guān)機(jī)時(shí)間是"+(hour.length()==1?"0"+hour:hour)+"時(shí)"+(minute.length()==1?"0"+minute:minute)+"分");
shutDown.hour.setEnabled(false);
shutDown.minute.setEnabled(false);
shutDown.bStart.setEnabled(false);
shutDown.bCancel.setEnabled(true);
//新建并啟動(dòng)關(guān)機(jī)線程
shut=new Shut(Byte.parseByte(hour),Byte.parseByte(minute));
shut.start();
}
}
}
/**
* 此類為實(shí)現(xiàn)關(guān)機(jī)操作的類,是一個(gè)線程類
* @author Administrator
*
*/
class Shut extends Thread{
//獲取當(dāng)前日期及時(shí)間
private Calendar shutTime=Calendar.getInstance();
private Calendar currentTime;
private byte hour=0;
private byte minute=0;
public Shut(byte hour,byte minute){
this.hour=hour;
this.minute=minute;
}
/* 覆寫run方法
*
*/
public void run(){
//調(diào)用關(guān)機(jī)時(shí)間處理方法
handleTime();
while(!Thread.interrupted()){
//循環(huán)獲取系統(tǒng)時(shí)間
currentTime=Calendar.getInstance();
//如果關(guān)機(jī)時(shí)間在當(dāng)前時(shí)間之前
if(shutTime.before(currentTime)){
//調(diào)用關(guān)機(jī)方法
shutDown();
//退出系統(tǒng)
System.exit(0);
}
try {
//線程休眠一秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 關(guān)機(jī)方法
*/
private void shutDown() {
String shutdown="shutdown -s";
Runtime rt=Runtime.getRuntime();
try {
rt.exec(shutdown);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 用于計(jì)算關(guān)機(jī)的時(shí)間
*/
private void handleTime() {
java.util.Date date=new java.util.Date();
if(date.getHours()hour){
date.setDate(date.getDate()+1);
}if(date.getHours()==hour){
if(date.getMinutes()minute){
date.setDate(date.getDate()+1);
}
}
date.setHours(hour);date.setMinutes(minute);
date.setSeconds(0);
shutTime.setTime(date);
}
}
要實(shí)現(xiàn)電腦的定時(shí)開(kāi)機(jī)功能,首先應(yīng)確定電腦使用的電源是ATX電源,而且主板支持時(shí)鐘喚醒功能,而且操作系統(tǒng)是Windows 98或以上版本的操作系統(tǒng),然后在開(kāi)機(jī)時(shí)進(jìn)入BIOS設(shè)置,選擇“Power Management Setup”項(xiàng)后,將“Resume By Alarm”項(xiàng)設(shè)為打開(kāi)狀態(tài),櫻腔即設(shè)置為“Enabled”。然后在時(shí)間設(shè)定中的“Data”項(xiàng)中選0,在“Time”中設(shè)定定時(shí)開(kāi)機(jī)的時(shí)間,設(shè)置好后按【F10】鍵保存退出,即可實(shí)現(xiàn)電腦定時(shí)開(kāi)機(jī)功能。需注意的是不要將電腦的電源插頭撥了。
定時(shí)關(guān)機(jī):首先在“開(kāi)始”菜單點(diǎn)擊“運(yùn)行”,輸入“at xx:xx shoutdown -s” 可以實(shí)現(xiàn)定時(shí)關(guān)機(jī),xx:xx指的是具體關(guān)機(jī)時(shí)間。還可以輸入“shoutdown.exe -s -t xxxx”。xxxx指的是欲多久后關(guān)機(jī)的秒數(shù)。脊遲衫如果運(yùn)行程序后想取消,則輸入“shutdown -a”即可(注意以上輸入時(shí)不包括引號(hào))。本人旦伍在上網(wǎng)的時(shí)候運(yùn)用了此招,就再也沒(méi)發(fā)生上網(wǎng)失控的現(xiàn)象了。 如果要在Windows 2000下運(yùn)行的話,只需將Windows XP c:\windows\system32目錄下的“shutdown.exe”文件拷貝到Windows 2000下的c:\winnt\system32目錄下即可。
必須有root權(quán)限的才可亮陪悶以,有的話執(zhí)行命令行就可以了 RuntimegetRuntime()exec(new String[]{ "su", "-c", "poweroff -f" }); RuntimegetRuntime()exec(new String[]{ "su", "-c", "reboot" });android完整的敬彎java關(guān)亂爛機(jī)代碼?
哈哈,這個(gè)我正好可以幫你,以前寫了類似程序
開(kāi)機(jī)運(yùn)行:String regKey = "HKEY_LOCAL_MACHINE\\SOFTWARE\悶悔\Microsoft\螞梁正\渣陵Windows\\CurrentVersion\\Run";
String myAppName = "DaKa";
try {
Runtime.getRuntime().exec("reg " + (isStart ? "add " : "delete ") + regKey + " "
+ myAppName + (isStart ? " /t reg_sz /d " + dirpath : " /f"));
dirpath是你當(dāng)前文件的絕對(duì)路徑(包括文件名)
關(guān)機(jī):Runtime.getRuntime().exec("shutdown -s -f -t 10");
網(wǎng)頁(yè)標(biāo)題:java取消關(guān)機(jī)代碼 java關(guān)閉某一界面的代碼
URL地址:http://www.chinadenli.net/article36/ddpgdpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站制作、、App開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)