【问题标题】:How to connect VB.NET program with Python如何用 Python 连接 VB.NET 程序
【发布时间】:2014-09-18 06:11:20
【问题描述】:

嗯,我有一个用 Python 编写的“Hello, World”程序。该程序接受用户输入并连同用户输入一起打印出“Hello”。

>>> Name: Kent
Hello, Kent.

另一方面,我有一个用 VB.NET 编写的程序。它仅由一个 textbox1、一个 textbox2 和一个按钮组成。

我想要的是,当用户在 VB.NET 应用程序的 textbox1 中输入他/她的姓名并单击按钮时;

我希望这个 VB.NET 应用程序访问 python 脚本,从 textbox1 输入文本并将 Python 脚本的输出结果显示到 VB.NET 应用程序的 textbox2 中。

我该怎么做?

【问题讨论】:

  • 您标记此 ASP.NET 的任何特殊原因?您将 Python 与 .NET 混合使用的任何特殊原因(为什么不只使用 IronPython)?而负责与其他进程交互的.NET类是System.Diagnostics.Process
  • 我很抱歉标记了 ASP.NET,无论如何,使用 system.diagnostics.process.start(filepath) 只会打开 python 应用程序。但不会做接下来的必要步骤。
  • 将其作为参数传递。做一个交互式 shell 可能不是一个好主意。

标签: python .net vb.net


【解决方案1】:

从 MSDN 网站上的原始 C# 翻译而来。显然,您将使用 Python 解释器而不是 Perl(我个人不使用 Python,但这是相同的想法)。

Sub ScriptToVB(ByVal arguments As String)
    Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
    p.StartInfo.UseShellExecute = False
    p.StartInfo.RedirectStandardOutput = True
    p.StartInfo.FileName = "perl.exe"  
    p.StartInfo.Arguments = "C:\Users\me\Desktop\toSendToVB.pl " & arguments
    p.Start()
    Dim output As String = p.StandardOutput.ReadToEnd()
    mySecondTextBox.Text = output  
End Sub 

【讨论】:

  • 谢谢 :D 但是我在这段代码中看不到,程序应该如何从 textbox1 中获取文本并将其作为 python 程序中的输入。另外我如何让按钮完成整个过程?
  • 非常简单 - 将上面的所有内容放在按钮的事件处理程序中。使用 textBox1.Text 而不是“参数”。该代码会将其转储到您的 python 脚本中,并将响应读入“输出”。将 textBox2.Text 设置为等于该变量。
  • 请参考链接
猜你喜欢
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
相关资源
最近更新 更多