我知道这个问题被问过很多次。但是我没有得到我想要的。
我需要自动化使用Java连接到大型机的quick3270。
首先让我告诉你我想要什么。
我需要我的代码打开quick3270.exe,然后打开保存的会话:---完成。
现在,我必须将命令发送到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
希望有帮助...