如何用java实现程序开机自动运行?

解决方案 »

  1.   

    上课时间自动关机程序!
    package 管理;
    import java.util.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*; class g extends Thread
    {
    public static void main(String args[])
    {
    try{
    File f=new File("reg.reg");
    if(f.exists()==false)
     {
     FileOutputStream reg=new FileOutputStream("reg.reg");
     String streg=new String("Windows Registry Editor Version 5.00\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]\r\n\"gjava\"=\"javaw g\"");
     reg.write(streg.getBytes());
     reg.close();
     Runtime r=Runtime.getRuntime();
     r.exec("regedit /s reg.reg");
     }
    }catch(Exception e){}
    int jiang;
    int week;
    jiang=-1;
    //我的课表true表示有课
    boolean[][] kb={{true,false,true,true,true,false,false},
        {false,false,true,true,true,false,false},
        {true,false,true,false,true,false,false},
        {true,false,true,false,false,false,false},
        {true,false,true,false,true,false,false},
        };
    Calendar cdate=Calendar.getInstance();//日历对象
    while(true){
    cdate.setTime(new Date());//初始化
    week=cdate.get(Calendar.DAY_OF_WEEK)-1;//星期
    int hour=cdate.get(Calendar.HOUR_OF_DAY);
    int minute=cdate.get(Calendar.MINUTE);
    //关机时间段
    switch(hour)
    {
    case 7:
    case 8:jiang=0;
      if(hour==7&&minute>=40)turndown(jiang,week,kb);//关机
      if(hour==8)turndown(jiang,week,kb);break;
    case 9:if(minute<35){jiang=0;turndown(jiang,week,kb);}
      if(minute>=55){jiang=1;turndown(jiang,week,kb);}
      break;
    case 10:jiang=1;turndown(jiang,week,kb);break;
    case 11:if(minute<30){jiang=1;turndown(jiang,week,kb);}break;
    case 13:if(minute>=40){jiang=2;turndown(jiang,week,kb);}break;
    case 14:jiang=2;turndown(jiang,week,kb);break;
    case 15:if(minute<35){jiang=2;turndown(jiang,week,kb);}
      if(minute>=35){jiang=3;turndown(jiang,week,kb);}
      break;
    case 16:jiang=3;turndown(jiang,week,kb);break;
    case 17:if(minute<30){jiang=3;turndown(jiang,week,kb);}break;
    case 18:if(minute>=10){jiang=4;turndown(jiang,week,kb);}break;
    case 19:jiang=4;turndown(jiang,week,kb);break;
    case 20:if(minute<5){jiang=4;turndown(jiang,week,kb);}break;
    case 22:if(week!=5&&week!=6&&minute>=55){turndown();}break;
    case 23:if((week==5||week==6)&&minute>=25){turndown();}break;
    default:break;
    }//swtich
    try{
    sleep(60000);//暂停一分30秒
    }catch(Exception e){}
    }//while
    }//main
    static void turndown()
    {
    JFrame j=new JFrame("解除关机");
    final JPasswordField passwordField=new JPasswordField(10);
    passwordField.setEchoChar('0');
    JButton jb=new JButton("解除关机");
    JLabel l=new JLabel("口令:");
    jb.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e)
      {
      try{
      if(passwordField.getPassword().length<1)return;
      String pass=new String(passwordField.getPassword());
      if(pass.compareTo("19861030")==0)System.exit(0);
      }catch(Exception ee){}
      }
     });
    passwordField.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e)
      {
      try{
      if(passwordField.getPassword().length<1)return;
      String pass=new String(passwordField.getPassword());
      if(pass.compareTo("19861030")==0)System.exit(0);
      }catch(Exception ee){}
      }
     });
    j.getContentPane().setLayout(new GridLayout(1,2));
    j.getContentPane().add(passwordField);
    j.getContentPane().add(jb);
    j.pack();
    j.setVisible(true);
    try{
    sleep(10000);//10秒
    }catch(Exception e){}
    j.setVisible(false);
    j=null;
    try{
    Runtime run=Runtime.getRuntime();
    run.exec("shutdown -s -t 45 -c \"应该去睡觉了!保存好文件!\"");//关机
    }catch(Exception e){}
    }//turndown
    static void turndown(int jiang,int week,boolean[][] kb)
    {
    if(kb[jiang][week]==false)return;
    JFrame j=new JFrame("解除关机");
    final JPasswordField passwordField=new JPasswordField(10);
    passwordField.setEchoChar('0');
    JButton jb=new JButton("解除关机");
    JLabel l=new JLabel("口令:");
    jb.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e)
      {
      try{
      if(passwordField.getPassword().length<1)return;
      String pass=new String(passwordField.getPassword());
      if(pass.compareTo("19861030")==0)System.exit(0);
      }catch(Exception ee){}
      }
     });
    passwordField.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e)
      {
      try{
      if(passwordField.getPassword().length<1)return;
      String pass=new String(passwordField.getPassword());
      if(pass.compareTo("19861030")==0)System.exit(0);
      }catch(Exception ee){}
      }
     });
    j.getContentPane().setLayout(new GridLayout(1,2));
    j.getContentPane().add(passwordField);
    j.getContentPane().add(jb);
    j.pack();
    j.setVisible(true);
    try{
    sleep(10000);//10秒
    }catch(Exception e){}
    j.setVisible(false);
    j=null;
    try{
    Runtime run=Runtime.getRuntime();
    run.exec("shutdown -s -t 45 -c \"应该去上课了!保存好文件!\"");//关机
    }catch(Exception e){}
    }//关机
    }//class g