Я знаю, что этот вопрос задают много раз. Но я не получил то, что хочу. Мне нужно автоматизировать quick3270, который используется для подключения к мэйнфрейму с использованием java. Сначала позвольте мне рассказать вам, что я хочу. Мне нужен мой код для открытия quick3270.exe, затем откройте сохраненную сессию: ---this. Теперь мне нужно отправить команды на quick3270. Вот и проблема: я не знаю, как отправить команду на это программное обеспечение. В-третьих, я использую класс робота. Так что я могу ввести: TAB, ENTER, F3 и т.д. Входы.
Итак, все дело в том, что я хочу отправить команды на quick3270. Мне также нужен интервал. Посылайте одну команду, затем задержка в 1 секунду, затем другую и так далее.
public static void main(String[] args) throws IOException, AWTException {
String exeloc = "C:\\Program Files\\Quick3270\\Quick3270.exe ";
// my saved session
String directory = "C:\\Users\\c111128\\Desktop\\Project\\xyz.ecf";
ProcessBuilder builder = new ProcessBuilder(new String[] { exeloc, directory });
// Starting the process
Process p = builder.start();
// For handling keyboard events
Robot robot = new Robot();
try {
robot.delay(2000);
// Passing enter key to top screen
robot.keyPress(KeyEvent.VK_ENTER);
robot.delay(4000);
// Here I want to write the command
//Command like:"teleview" which is used in mainframe
robot.delay(1000);
}
catch (Exception e) {
System.out.println("Second:" + e);
e.printStackTrace();
}
}
вы справились с проблемой? Через VBA вы можете отправлять команды Quick3270 следующим образом:
Set Session = .ActiveSession
Set Screen = Session.Screen
Screen.SendKeys ("<Enter>")
Result = Screen.WaitForKbdUnlock
Screen.SendKeys ("<PF12>")
Screen.SendKeys ("<Enter>")
Result = Screen.WaitForKbdUnlock
Screen.SendKeys ("<PF12>")
Result = Screen.WaitForKbdUnlock
Result = Screen.WaitForCursor(4, 15)
QuickPutstring "1", 10, 2
Private Function QuickPutstring(ByVal PutstringText As String, Row As Long, Col As Long)
Screen.MoveTo Row, Col
Screen.Putstring PutstringText
End Function
Надеюсь, это поможет...