【问题标题】:Perl Script in background后台 Perl 脚本
【发布时间】:2011-02-24 06:58:29
【问题描述】:

我制作了一个 perl 脚本,可以自动远程登录到不同的服务器。但它的界面只是命令行。为了使其对一般 Windows 用户更加用户友好,我需要为它制作 GUI。

我的想法是用 VB、java 等语言制作 GUI,然后调用 perl 脚本。我的脚本将在命令提示符的后台运行,无论它在 GUI 中显示什么结果。

取得了一些成功。在 vb 中的 GUI,我在后台运行 CMD 的实例,在其中运行 perl 脚本。但那是 wer 程序失败。由于 perl 脚本在 perl 的线程中运行,我只在脚本完成时得到输出(而是说当它超时时)。我需要一种机制,我可以与 perl 脚本交互,获取脚本的输出并显示给用户,然后从用户那里获取输入等等。

请大家给我一些建议来真正实现这一点。

PS: 对 GUI 使用任何语言没有限制(因为核心工作是由 perl 脚本完成的,GUI 只在那里给脚本提供适当的命令)

提前致谢

【问题讨论】:

    标签: java vb.net perl


    【解决方案1】:

    看看 Perl 的Win32::GUI

    【讨论】:

    • 或 Tk,或 Tkx,或 Gtk,或 Wx,或 Prima...或者只是看到perlmonks.org/?node_id=108708
    • 感谢您的回复。尽管需要做很多工作,但我最终还是设法按照自己的方式完成了工作:)。对于其他好奇的人,我使用“GUI loft”来设计我的 GUI。然后是用于处理事件和所有其他 GUI 相关事物的 Win32 API。在程序中导入我的原始脚本并完成工作。
    【解决方案2】:

    如果您使用 Java(您建议的其中一种语言)创建 GUI,则可以使用 Runtime.exec() 方法运行 perl 脚本。这是 Runtime 类的javadoc

    正如他们在Sun forums 中建议的那样,您必须执行 perl 解释器并将脚本作为参数传递。比如 "rt.exec("C:/perl.exe C:\runPerl.pl");"。

    在那个论坛中,他们还建议查看以下JavaWorld article。在文章的第四页,DaConta 很好地演示了如何从 perl 脚本捕获输出,我相信它应该适合您的需要。输入的工作方式类似,也使用流。

    【讨论】:

    • 感谢您的方法
    • 先试了你的方法。但是陷入了与我的VB应用程序在脚本运行时与命令提示符交互的情况相同的情况。之后尝试了 win32::GUI 并且有效。谢谢
    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2013-08-08
    • 2011-06-15
    相关资源
    最近更新 更多