2012-02-19 41 views
1

我一直在尋找如何鏈接的Visual Basic和Python

我一直如此努力與Python文件的Visual Basic通過鏈接在Visual Basic中,但沒有使用shell happend

我已經叫Python文件Go.py,我想用它鏈接的Visual Basic按鈕,得到返回到變量

什麼想法?

+0

您使用IronPython的,對不對? – Marcin 2012-02-19 16:28:26

+0

沒有常規的Python – Hamoudaq 2012-02-19 16:36:16

+0

這將是你的問題。 VB.net的目標是CLR,就像IronPython一樣。 – Marcin 2012-02-19 16:36:56

回答

3

首先,你可以使用Shell,雖然它不幸可能比你想象的更復雜。

你目前的問題是一個簡單的 - Shell不能直接運行Python文件,所以你需要有Shell呼叫cmd /c python.exe Go.py,你可能需要提供完整路徑python.exe爲好。

但是,你也想捕捉的結果,並Shell只返回進程ID,沒有任何一種過程的輸出。你可以看看一些examples of external process invocation,雖然他們沒有明確說明如何捕獲輸出。如果Go.py輸出到終端,你也許可以捕獲輸出到使用standard Windows output redirection一個文件,然後打開VisualBasic中的文件,並讀出值。

您也可以使用System.Diagnostics.Process()而不是跳過所有嘗試從Shell獲得更多功能的環節。 (具體而言,審查與輸出重定向ProcessStartInfo類屬性使用Shell會,給你更多的控制比任何東西)。

+0

我認爲這很容易通過「os.popen(」cc.py「)。」()「 – Hamoudaq 2012-02-19 16:55:28

+0

@EngHamoud:可悲的是,事實並非如此 - 即使在Python中,您也應該使用'subprocess '模塊,其'Popen'類的功能非常類似於VB中的System.Diagnostics.Process類。 – 2012-02-19 17:26:49