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