我正在尝试使用ffmpeg.exe
和以下代码执行Process.Start
:
var commandLineArgs = $"-y -ss 00:00:01 -i \"sourcepath\" -vframes 1 -q:v 2 \"destfile.jpg\"";
var proc = Process.Start(new ProcessStartInfo
{
FileName = ffmpegPath,
Arguments = commandLineArgs,
WindowStyle = ProcessWindowStyle.Hidden
});
Windows 7提示我:
作为一种解决方法,我一直在做的是将调用写入批处理文件,然后像这样执行批处理文件:
var bat = IoHelpers.WriteTextFile("ffmpegwrapper.bat", $"\"{ffmpegPath}\" {commandLineArgs}");
var proc = Process.Start(new ProcessStartInfo
{
FileName = bat.FullName,
WindowStyle = ProcessWindowStyle.Hidden
});
它有效,但是我不太喜欢它。我也不明白它是如何工作的。看来Windows不会在包裹在批处理文件中的EXE上降低安全性,但这又是一个问题。
我不想进行任何全局系统更改,例如编辑策略和其他操作,因为如果尝试手动打开这样的EXE,我仍然希望此消息显示。是否可以绕过.NET中的此对话框?