Call to Process отлично работает с Debug, но не работает в установленном приложении - PullRequest
0 голосов
/ 05 февраля 2019

Я занимаюсь разработкой программы Windows Form, в которой есть вызовы ffmpeg библиотеки через класс Process.

. Она отлично работает, когда я запускаю ее с Debug в Visual Studio 2013.Но когда я устанавливаю программу и вызываю операцию, которая вызывает ffmpeg Process, она не работает.Экран cmd исчезает и ничего не происходит.

Я пытался узнать, что может происходить, получая файл журнала с выводом ffmpeg , на случай, если это было проблемой в ffmpeg библиотеки.Однако после его выполнения журнал пуст, что означает, что команда ffmpeg не была выполнена.

Может кто-нибудь помочь мне, пожалуйста?

Код такой:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c " + ffmpegPath + " " + commandArguments;
using (Process processTemp = new Process())
{
    processTemp.StartInfo = startInfo;
    processTemp.EnableRaisingEvents = true;
    processTemp.Start();
    processTemp.WaitForExit();
}

Я вызываю cmd.exe (не напрямую ffmpeg.exe), потому что в аргументах иногда может быть канал (поэтому команда начинается с "/c").

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Хм, это не проблема пути с пробелами в именах файлов / каталогов, не так ли?Для ffmpegPath или одного из параметров вашей команды (если путь к файлу).Окружите все пути к файлам с помощью 'как показано ниже.

Попробуйте окружить любые пути к файлам с помощью'

 startInfo.Arguments = "/c '" + ffmpegPath + "' " + commandArguments;

. Также вы можете попробовать добавить / K к командному вызову cmd, чтобы остановить его, если после закрытия командыподскажите, когда это закончится.Она может сообщить вам об ошибке до того, как закроет окно, но вы не увидите ее, если она закроется так быстро

Удачи :) Paul

0 голосов
/ 05 февраля 2019

Вы уверены, что это не проблема привилегий при попытке запустить cmd.exe (например, вам нужны права администратора)

попробуйте добавить

startInfo.Verb = "runas";

Пол

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...