Eğlenmek için bir mini Python IDE yapıyorum. Neden olmasın. Bu yüzden C# dan bir python betiğini çağırmak istiyorum ve şu anda sadece basit bir senaryoyu test ediyorum. Bu profesyonel IDE'nin muhtemelen nasıl çalıştığını bilmiyorum. Windows Form uygulaması üzerinde "run" butonuna tıklayın her C# içinde python komut dosyasını çağırmaya çalışıyor #
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);
}
}
}
kısaca python.exe sonra kapanır çalışır. Geçtiğim dosyayı gerçekten çalıştırmıyor. Yanlış bir şey mi yapıyorum?
PS: run_cmd yöntemi BENIM DEĞİLDİR. Bu konuyu daha önce bir iş parçacığına baktım ve kodlarını kullandım. Ama bence yöntemi yanlış kullanıyorum.
Herhangi bir fikrin var mı? Teşekkür ederim!
Yardımlarınız için teşekkürler! Yöntem imzasını veya yöntem çağrısını nasıl yeniden yapılandırabilirim? – katie1245
Bunu yapmanın farklı yolları vardır. Muhtemelen şöyle bir şey yapardım: start.FileName = cmd. Ve sonra, cmd'yi Argümanlar 'a geçemezsiniz, çünkü aradığınız programın argümanı değil, programın kendisi! Yani, start.Arguments = args. Bu işe yaramalı! (Ben test etmedim) – HammerHeart