2016-09-19 1 views
1

Я хочу запустить исполняемый файл, который генерирует окно с кнопками Next. Я хочу подавить это окно и как-то «нажимать» кнопки Next без ведома пользователя. До сих пор мне удалось запустить исполняемый файл, и я понял, что могу использовать определенные параметры для его бесшумно, но у меня нет информации об этих параметрах.Ядро запускает программу без использования ProcessBuilder

public class Process extends Thread { 

public void run(){ 
     try{ 

      System.out.println("Start"); 

      ProcessBuilder processBuilder = new ProcessBuilder("path to executable"); 
      java.lang.Process process = processBuilder.start(); 

      System.out.println("End"); 
     }catch(IOException exception){ 
      System.out.println(exception); 
     } 
    } 

} 
+0

Похоже, вы ошибетесь. Вы хотите, чтобы несколько программ обменивались данными? –

+0

Нет, мне поручено создать программу, которая запускает некоторые исполняемые файлы. Эти файлы генерируют несколько окон с помощью кнопок «Далее». Я хочу отключить эти окна и нажать эти кнопки. Я не хочу, чтобы мой пользователь знал, что я открыл эти программы. – Justplayit94

+0

Являются ли эти программы случайными? Вы проверили, не выполнили ли они свой бесшумный режим? Если это так, вы можете просто запустить эти программы, предоставив хорошие параметры с помощью 'ProcessBuilder' – MadJlzz

ответ

1

Вы можете использовать метод doClick().

doClick() method doc

Кроме того, в дополнение вы можете взглянуть на JNI или ЮНА инструмент, который служит в качестве обертки.

+0

Есть ли способ найти кнопку «Далее» внешней программы? – Justplayit94

+0

Вы не можете получить ссылку на кнопку внешнего приложения (легко). Поэтому я не думаю, что это полезно здесь. – ArcticLord

+0

Вы можете попробовать использовать инструмент JNI или JNA, который служит в качестве обертки. – Techidiot

1

Если вы пытаетесь установить какой-либо файл .exe, вы можете использовать Msiexec с параметрами, и вы можете вызвать его с помощью ProcessBuilder. Вы можете найти больше информации here и here.

+0

'ProcessBuilder processBuilder = new ProcessBuilder (« Msiexec.exe »,« путь к исполняемому файлу »,«/quiet »);« Я сделал это, но он открывает окно, в котором указаны некоторые сведения о 'Msiexec.exe' – Justplayit94