2010-05-26 77 views
1

我有一個perl腳本,我自動telnet到不同的服務器。但其接口只是命令行。爲了讓普通Windows用戶更加友好,我需要爲它製作GUI。Perl腳本在後臺

我的想法是用VB,Java等語言製作GUI,並讓它調用perl腳本。我的腳本將在命令提示符下運行,並在GUI中顯示返回的結果。

取得了一些成功。 vb中的GUI,我在後臺運行CMD的一個實例,運行perl腳本。但是那是程序失敗。因爲perl腳本在perl的線程中運行,所以我只在腳本完成時得到輸出(而不是說它超時)。我需要一種機制,我可以與perl腳本進行交互,輸出腳本並顯示給用戶,然後從用戶那裏接受輸入等。

請大家給我建議一些方法來實現這一目標。

PS:在使用GUI任何語言沒有限制(如核心工作是通過perl腳本完成的,僅僅是GUI那裏給適當的命令腳本)

在此先感謝

回答

1

看看Perl的Win32::GUI

+1

或者Tk,或者Tkx,或者Gtk,或者Wx或者Prima ...或者只是看到http://www.perlmonks.org/?node_id=108708 – runrig 2010-05-26 18:06:29

+0

謝謝您的回覆。 儘管我需要做很多工作,但我終於設法按照自己的方式完成工作:)。 對於其他好奇的人,我使用「GUI閣樓」來設計我的GUI。然後是Win32 API來處理事件和所有其他GUI相關的事情。在程序中導入我的原始腳本並完成了工作。 – Himz 2010-05-27 15:52:46

+0

不錯的鏈接runrig – Himz 2010-05-30 13:05:51

0

如果您使用Java建議您的GUI,那麼您可以使用Runtime.exec()方法運行perl腳本。這裏是運行時類的javadoc

正如他們在Sun forums中提出的建議,您必須執行perl解釋器並將腳本作爲參數傳遞。如「rt.exec(」C:/perl.exe C:\ runPerl.pl「);」。

在該論壇中,他們還建議看下面的JavaWorld article。在文章的第四頁,DaConta給出了一個從perl腳本捕獲輸出的良好演示,我認爲這應該滿足您的需求。輸入的工作原理類似,也使用流。

+0

thanx 看着你的方法 – Himz 2010-05-27 04:50:39

+0

先嚐試了你的方法。但遇到與我的VB應用程序相同的情況 - 腳本運行時與命令提示符交互。 嘗試win32 :: GUI後,工作。 thanx – Himz 2010-05-27 15:55:16