我是一名Informix 4GL开发人员。由于可维护性,我的任务是编写一个包装器,以便在基于4GL表单的命令行应用程序上自动执行一些任务。
有没有人知道如何在python上做到这一点?(我也会学习其他语言,但Python是我的首选)。
我的想法是使用“键盘”来模拟按键...(丑陋的我知道)。
问题是,正如我所建议的那样,用python或其他语言重写整个应用程序并不符合我的老板的要求。(这个应用程序已经有30年的历史了,dbs也是如此……它很混乱)
发布于 2019-03-25 07:51:43
20年前,我将cron-job设置为
fglgo program-name < keystrokes.txt
顾名思义,keystrokes.txt所在的位置就是手动运行程序所需的击键。这通常用于在半夜生成报告或启动批处理。
带有四个Js Genero的快速文本表明,相同的原则仍然有效。我的小测试程序是
#! keystroketest.4gl
MAIN
DEFINE where_clause CHAR(100)
OPEN FORM f FROM "keystroketest"
DISPLAY FORM f
MENU ""
COMMAND "Query"
CONSTRUCT BY NAME where_clause ON field1, field2, field3
DISPLAY where_clause
EXIT MENU
END MENU
END MAIN
#! keystroketest.per
SCREEN
{
Field 1 [f01 ]
Field 2 [f02 ]
Field 3 [f03 ]
}
END
ATTRIBUTES
f01 = formonly.field1;
f02 = formonly.field2;
f03 = formonly.field3;
od -x keystroketest.txt
0000000 3151 3030 0d1b 000a
0000007
fglrun keystroketest < keystroketest.txt
field1='100'
因此,keystroketest.txt发送Q(选择查询),100 (在字段中输入数据),ASCII(27),即转义。棘手的一点是将ASCII(27)放入.txt文件。
使用FourJs Genero,如果您没有添加任何GUI小部件,您仍然可以使用Informix-4gl程序执行上述操作。如果您添加了GUI小部件,您还可以使用我们的自动化测试工具(Genero Ghost Client)来执行4gl程序,并使用测试脚本将其自动化。所以,如果你不想重写这些程序,但是你想在一个现代的服务器上编译和运行它们,等等,这可能是一个选择。
https://stackoverflow.com/questions/55305270
复制相似问题