私は楽しいためにミニPython IDEを作っています。何故なの。だから私はC#からpythonスクリプトを呼び出すことができるようになりたい、今は単純なシナリオをテストしています。私はこれがプロフェッショナルIDEがおそらく動作する方法ではないことを知っている。C#でPythonスクリプトを呼び出そうとしています
private void Run_Click(object sender, EventArgs e)
{
run_cmd("C:/Python34/python.exe", "C:/Users/Alaseel/Desktop/test.py");
}
private void About_Click(object sender, EventArgs e)
{
// Open the about documentation
}
private void run_cmd(string cmd, string args)
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "C:/Python34/python.exe";
start.Arguments = string.Format("{0} {1}", cmd, args);
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result);
}
}
}
Windowsフォームアプリケーションで[実行]ボタンをクリックすると、python.exeが短時間実行されて閉じられます。実際に渡されたファイルは実行されません。間違っていますか?
PS:run_cmdメソッドは私のものではありません。以前にスレッドでこの問題を調べ、コードを使用しました。しかし、私は方法を間違って使用していると思う。
アイデア?ありがとうございました!
ご協力いただきありがとうございます。メソッドのシグネチャまたはメソッド呼び出しをどのように再構築しますか? – katie1245
これを行うにはさまざまな方法があります。私はおそらくstart.FileName = cmdのようなことをします。そして、引数にcmdを渡さないようにします。あなたが呼び出しているプログラムの引数ではなく、プログラム自体です。だから、start.Arguments = args。それはうまくいくはずです! (私はテストしなかった) – HammerHeart