2015-07-07 1 views
0

Можно ли вводить текст или ключи во внешнюю программу через Java.Отправка текста или клавиш во внешнюю программу

Для примера у меня есть стандартный редактор Windows open, могу ли я отправить его из моей java-программы «Hello World». И тогда редактор будет удовлетвориться «Hello World», а затем снова отправить STRG + S, чтобы сохранить его и т.д.

Thx

+0

Некоторые программы позволят вам передавать различные биты данных с использованием надлежащего формата (например, например, аргументы командной строки или IO). Если вы хотите прямо или принудительно вводить меня, я думаю, вы можете изучить что-то более сложное (например, редактировать вещи вне JVM). – Sh4d0wsPlyr

ответ

1

Вы не можете создать программу на любом языке, который может контролировать внутреннюю функциональность другое заявление. Но, если вы все еще хотите сделать это затем использовать один из следующих подходов:

  1. Сделать свой собственный текстовый редактор приложения Windows, который будет действовать в качестве клиента к серверу сокета из вашего внешнего приложения Java. прослушать сообщение, отправленное сервером, и показать его в рабочем пространстве & определить ключевое слово, которое будет обрабатываться иначе, чем нормальное сообщение (например, saveItNow) для выполнения задачи сохранения.
  2. Сделайте простой текстовый файл «test.txt». Откройте cmd и введите tail -f test.txt в том же каталоге. Теперь с помощью простой обработки java-файлов вы можете сохранить текст в test.txt и сразу же он появится в CMD.
0

Может быть, робот класса может быть решением для меня ...

String text = "Hello World from the Clipboard :)"; 
StringSelection stringSelection = new StringSelection(text); 
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
clipboard.setContents(stringSelection, stringSelection); 

Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_CONTROL); 

Но как я могу справиться, чтобы установить фокус на экстерном программе первым? (за исключением перемещения мыши к окну и нажатия на нее с помощью robot.mouseMove (x, y))