Call to Process可与Debug一起正常使用,但在已安装的应用程序中不起作用

时间:2019-02-05 15:06:23

标签: c# .net visual-studio winforms ffmpeg

我正在开发Windows窗体程序,该程序通过类Process调用 ffmpeg 库。

当我在Visual Studio 2013中使用Debug运行它时,它可以很好地工作。但是,当我安装程序并调用调用 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 :(得分:0)

确定执行cmd.exe时,这不是特权问题吗(例如,您需要管理员特权)

尝试添加

startInfo.Verb = "runas";

保罗

答案 1 :(得分:0)

嗯,这不是文件/目录名称中包含空格的路径问题吗?对于ffmpegPath或您的命令参数之一(如果是文件路径)。用'包围所有文件路径,如下所示。

尝试用'

包围所有文件路径
 startInfo.Arguments = "/c '" + ffmpegPath + "' " + commandArguments;

如果在完成后关闭命令提示符,您也可以尝试将/ K添加到cmd命令调用中以停止。它可能会在关闭窗口之前告诉您错误,但如果关闭如此迅速,您将看不到它

祝你好运:) 保罗