1

我正在考虑使用 X3270 终端仿真器。我已经http://x3270.bgp.nu/查看了此源材料,但仍然看不到如何开始使用该工具或对其进行配置。

我想知道如何打开终端并连接。另一个问题是如何将其集成到 python 程序中?

编辑:这是一个片段:

em = Emulator()     
em.connect(ip)
em.send_string('*user name*')
em.exec_command('Tab')
em.send_string('*user password*')
em.send_enter()
em.send_enter()
em.wait_for_field()
em.save_screen("{0}screenshot".format(*path*))

看着保存屏幕,我看到光标没有移动?我可以使用移动光标

em.move_to(7,53)

但在那之后我没有收到任何文本发送。有任何想法吗?

4

2 回答 2

4

这就是我所做的;它在 100% 的时间内有效:

from py3270 import *
import sys, os

host = "%s" % sys.argv[1].upper()
try:
    e = Emulator()
    e.connect(host)
    e.wait_for_field()
except WaitError:
    print "py3270.connect(%s) failed" % (host)
    sys.exit(1)

print "--- connection made to %s ---" % (host)`

如果您的主机没有网络连接,则 wait_for_field() 调用将等待整整 120 秒。无论我做什么,我似乎都无法影响超时的长度。

但是您的用户不必等待那么久,只需让他使用 KeyboardInterrupt 终止您的脚本。希望您的用户会习惯于显示“--- 建立连接...”消息的成功,因此当/如果主机没有响应时,他会知道他遇到了麻烦。

这是我需要说明的一点:您不连接到终端(如您所述),而是连接到主机。该主机可以是 VTAM 连接,也可以是某种 LPAR,通常是 TSO 或 z/VM,有时是 CICS 或 IMS,VTAM 会将您带到那里。每种主机都有不同的提示和屏幕内容,您可能需要对其进行测试,有时这些内容会有所不同,具体取决于您尝试连接的系统。您的脚本将成为“终端”,具体取决于您要向用户展示的内容。

您接下来需要做什么取决于您要与之交谈的系统类型。通过VTAM?(需要先选择一个 VTAM 应用程序?)到 z/VM?TSO?您是登录还是拨号?当您使用图形 x3270/c3270 终端时,您必须使用的下一个按键/字段是什么?您需要知道这一点才能选择下一个命令。

祝你好运!

于 2014-11-23T23:39:42.690 回答
1

请先阅读我上面的评论 - 了解更多关于你需要做什么的细节会很有帮助。

考虑到这一点之后……您是否查看过https://pypi.python.org/pypi/py3270/0.1.5上的 py3270 包?摘要说它与 x3270 对话。

于 2013-08-06T14:56:25.907 回答