2016-09-28 2 views
2

Я хочу создать задачу в Планировщике оконных задач, используя мой код Java. OS, который я использую, - win7 64bit. После создания задачи я должен отредактировать запланированное время еженедельно или раз в две недели. Есть ли какой-либо API-планировщик окон для использования в Java-коде или команде для использования в командной строке?Как создать задачу планировщика в Планировщике планировщика окон с помощью Java?

+1

Google всегда выбивают StackOverflow дверь, прежде чем шептались. :) – Harsh

ответ

1

Windows, имеют уже планировщик задач, которые вы можете вызывать из командной строки: SchTasks.exe

SchTasks/параметр [аргументы]

Описание: Позволяет администратору создавать, удалять, запросов, изменение, run и завершить запланированные задачи в локальной или удаленной системе.

Список параметров: /Создать Создает новую запланированную задачу.

/Удалить Удаляет запланированные задачи.

/Query Отображает все запланированные задачи.

/Изменить Изменение свойств запланированной задачи.

/Run Выполняет запланированную задачу по требованию.

/End Останавливает текущую запланированную задачу.

/ShowSid Показывает идентификатор безопасности, соответствующий запланированному номеру .

/? Отображает это справочное сообщение.

0

Попробуйте следующее http://yajsw.sourceforge.net/. Используя «YAJSW» (еще один Java Wrapper), вы можете зарегистрировать свою java-службу как службу Windows.

2

Запустить служебную программу командной строки schtasks.

Чтобы создать задачу.

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

public class TestWinScheduler { 

public static void main(String args[]) throws IOException, InterruptedException { 
    // schtasks /create /tn "HowToTask" /tr c:\temp\test.cmd /sc once /st 00:00:00 /sd 2022/01/01 /ru username /rp password 

    List<String> commands = new ArrayList<String>(); 

    commands.add("schtasks.exe"); 
    commands.add("/CREATE"); 
    commands.add("/TN"); 
    commands.add("\"HowToTask\""); 
    commands.add("/TR"); 
    commands.add("\"c:/temp/test.cmd\""); 
    commands.add("/SC"); 
    commands.add("once"); 
    commands.add("/ST"); 
    commands.add("00:00:00"); 
    commands.add("/SD"); 
    commands.add("2022/10/10"); 
    commands.add("/RU"); 
    commands.add("username"); 
    commands.add("/RP"); 
    commands.add("password"); 

    ProcessBuilder builder = new ProcessBuilder(commands); 
    Process p = builder.start(); 
    p.waitFor(); 
    System.out.println(p.exitValue()); // 0 : OK 
            // 1 : Error 
    } 
} 

Чтобы выполнить поставленную задачу:

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

public class TestWinScheduler { 

public static void main(String args[]) throws IOException, InterruptedException { 
    // schtasks /run /tn "HowToTask" 

    List<String> commands = new ArrayList<String>(); 

    commands.add("schtasks.exe"); 
    commands.add("/RUN"); 
    commands.add("/TN"); 
    commands.add("\"HowtoTask\""); 

    ProcessBuilder builder = new ProcessBuilder(commands); 
    Process p = builder.start(); 
    p.waitFor(); 
    System.out.println(p.exitValue()); // 0 : OK 
            // 1 : Error 
    } 
} 

Ref

+0

Вышеприведенный рабочий код для меня. Но когда я удаляю задачу планировщика, используя свой код, он говорит ** ОШИБКА: Доступ запрещен. ** и он удаляется, когда я делаю это вручную в Планировщике планировщика окон. Любое разрешение на это? – Harsh

 Смежные вопросы

  • Нет связанных вопросов^_^