[英]How to avoid the Windows (XP) Security Warning when launching a “DOS” command line within 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安全警告提示。 我想避免這種令人討厭的行為,所以這是我的問題:
在C#中啟動“ DOS”命令行時,如何避免Windows(XP)安全警告?
充其量只是一個猜測(沒有時間嘗試),但是也許嘗試使用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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.