我正在编写一个GUI应用程序,让用户可以与命令行程序进行交互。在这种情况下,程序是晶体学程序。他们需要很长时间才能运行。
使用命令行程序有一个共同的工作流程。通常处理一个程序的输出,然后由其他程序使用。用户需要能够填写各种文本框并选择发送到命令行程序的选项。
因为我很懒,并且不想做比我需要做更多的工作,那里有哪些工具可以帮助我做到这一点?该软件最初需要在Linux上运行,但在某些时候也可以在Windows上运行。
如果非程序员有某种DSL能够扩展/修改GUI应用程序(添加新程序和更改选项等),也会很整洁。
看看GTK Server它可以从任何语言轻松编写脚本,因为它作为服务运行(有点像浏览器),它可以跨系统使用。也就是说,运行命令行的系统可以在强大的系统上运行,GTK服务器在用户的台式PC上运行。这些示例很容易理解,版本和语言的矩阵必然包含在您的内容中。如果你运气不好,只需选择最接近的组合作为例子。
TCL / TK是传统方式。 今天我将使用python与wxPython(更完整)或FLTK(更简单)。
如果您不需要从命令行程序中回读结果,那么它就容易多了 - 例如os.system(“命令选项”)
您可以使用WShell并重定向stdin stdout。
object console = WShell.Exec(cmdLine);
if (console.StdOut.AtEndOfStream)
s = Pipe.StdOut.ReadLine();
缺点是你仍然需要弄清楚如何访问控制台窗口。但这很容易。您需要按窗口标题查找此窗口并将其属性设置为ivisible。或者使用免费软件从互联网上的一些实用程序,它可以自动为您完成。