Как избежать предупреждения безопасности Windows (XP) при запуске командной строки "DOS" в C#?
Этот вопрос связан с этим начальным вопросом, заданным недавно.
Теперь, когда я выбрал инструмент извлечения, я перебираю данные в каталоге параметров и подкаталогах командной строки, чтобы извлечь сжатые файлы.zip.
private static void ExtractAll(DirectoryInfo _workingFolder) {
if(_workingFolder == null) {
Console.WriteLine("Répertoire inexistant.");
return;
}
foreach (DirectoryInfo subFolder in _workingFolder.GetDirectories("*", SearchOption.AllDirectories))
foreach(FileInfo zippedFile in subFolder.GetFiles("*.zip", SearchOption.AllDirectories)) {
if(zippedFile.Exists) {
ProcessStartInfo task = new ProcessStartInfo(@".\Tools\7za.exe", string.Format("x {0}", zippedFile.FullName));
Process.Start(task);
}
}
}
Но каждый раз, когда я запускаю процесс 7za, выдается предупреждение системы безопасности Windows. Я хотел бы избежать такого раздражающего поведения, поэтому вот мой вопрос:
Как избежать предупреждения безопасности Windows (XP) при запуске командной строки "DOS" в C#?
1 ответ
В лучшем случае это предположение (у меня нет времени, чтобы попробовать), но, возможно, попробуйте использовать CreateNoWindow?
http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.createnowindow.aspx
Вот код после использования предложенного решения:
private static void ExtractAll(DirectoryInfo _workingFolder) {
if(_workingFolder == null) {
Console.WriteLine("Répertoire inexistant.");
return;
}
foreach (DirectoryInfo subFolder in _workingFolder.GetDirectories("*", SearchOption.AllDirectories))
foreach(FileInfo zippedFile in subFolder.GetFiles("*.zip", SearchOption.AllDirectories)) {
if(zippedFile.Exists) {
Console.WriteLine(string.Format("Extraction du fichier : {0}", zippedFile.FullName));
Process task = new Process();
task.StartInfo.UseShellExecute = false;
task.StartInfo.FileName = @".\Tools\7za.exe";
task.StartInfo.Arguments = string.Format("x {0}", zippedFile.FullName);
task.StartInfo.CreateNoWindow = true;
task.Start();
Console.WriteLine(string.Format("Extraction de {0} terminée", zippedFile.FullName));
//ProcessStartInfo task = new ProcessStartInfo(@".\Tools\7za.exe", string.Format("x {0}", zippedFile.FullName));
//Process.Start(task);
}
}
}