Не работает программа exe, запускаемая из проекта - C#

Узнай цену своей работы

Формулировка задачи:

Мне нужно запустить файл midi2ascii.exe из C#-проекта, который конвертирует midi-файл в txt-файл, пыталась сделать это следующими способами: 1)
string midi2asciiProgramName = @"D:\midi2ascii.exe";
            string midiFileName = @"D:\81979.mid";
            string textFileName = @"D:\81979.txt";
            string commands = "-c -s";
            string bigger = ">";
            System.Diagnostics.Process.Start(midi2asciiProgramName, midi2asciiProgramName + commands + midiFileName + bigger + textFileName);
2)
string standard = @"C:\Documents and Settings\ADMIN>";
string midi2asciiProgramName = @"D:\midi2ascii.exe";
string midiFileName = @"D:\81979.mid";
string textFileName = @"D:\81979.txt";
string commands = "-c -s";
string bigger = ">";
System.Diagnostics.Process.Start(midi2asciiProgramName, standard + midi2asciiProgramName + " " + commands + " "+ midiFileName + " " + bigger + " " + textFileName);
3) Такой же, как и предыдущий, но вместо
System.Diagnostics.Process.Start(midi2asciiProgramName, standard + midi2asciiProgramName + " " + commands + " "+ midiFileName + " " + bigger + " " + textFileName);
написала
System.Diagnostics.Process.Start(standard + midi2asciiProgramName + " " + commands + " "+ midiFileName + " " + bigger + " " + textFileName);
4)
string midiFileName = @"D:\81979.mid";
string textFileName = @"D:\81979.txt";
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = @"D:\midi2ascii.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-c -s" + midiFileName + " > " + textFileName;
System.Diagnostics.Process.Start(startInfo);
(Сделано, но не записывает данные в txt-файл). 5) Поменяла строку
System.Diagnostics.Process.Start(startInfo);
на
try
{
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}
catch
{
// Log error.
}
Но ни один из этих способов не сработал так, как мне было нужно. Подскажите, что с этим делать.

Решение задачи: «Не работает программа exe, запускаемая из проекта»

textual
Листинг программы
string midiFileName = @"D:\81979.mid";
string textFileName = @"D:\81979.txt";
 
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"D:\midi2ascii.exe";
p.StartInfo.Arguments = "-c -s" + midiFileName;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
File.WriteAllText(textFileName, output);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.286 из 5
Похожие ответы