如何使用visual basic运行外部脚本?

时间:2018-05-01 17:40:02

标签: vb.net python-3.x visual-studio

我想使用visual basic和visual studio 2017制作Windows应用程序。 在这里,我想运行一个外部Python脚本,该脚本将在Windows窗体中按下“按钮1”时运行。它将从表单中的文本框中获取输入并进行一些计算,然后返回结果并将其放回到表单中的文本框中。

The form is like this:

python代码可以是:

r = input()
p = 2*3.14*r
print(p) #Instead of print(p) something that can return the value to the form

或者这个:

def peri(r):
    p = 2*3.14*r
    return p

1 个答案:

答案 0 :(得分:2)

我设法为你找到了这个解决方案,我真的希望它有效:

1.Write your python code , for example : print("Hello world python !!") in text file and save to .py
2.Create project at VB.NET, drag component 1 button and 1 textbox into form.
3.Double click button1, at event click button1 write this code 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim proc As Process = New Process
        proc.StartInfo.FileName = "C:\Python34\python.exe" 'Default Python Installation
        proc.StartInfo.Arguments = pathmypythonfile.py
        proc.StartInfo.UseShellExecute = False 'required for redirect.
        proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 'don't show commandprompt.
        proc.StartInfo.CreateNoWindow = True
        proc.StartInfo.RedirectStandardOutput = True 'captures output from commandprompt.
        proc.Start()
        AddHandler proc.OutputDataReceived, AddressOf proccess_OutputDataReceived
        proc.BeginOutputReadLine()
        proc.WaitForExit()

        TextBox1.Text = Value
    End Sub

    Public sub proccess_OutputDataReceived(ByVal sender As Object, ByVal e As DataReceivedEventArgs)
        On Error Resume Next
        If e.Data = "" Then
        Else
            Value = e.Data
        End If
    End sub 

4. Create module file, and write this variable global :
    Module module
           Public Value As String
    End Module

5. Running the application, if textbox1 have populated with some string then your code was success.

HERE是一个完整过程的舔。