У меня есть неотформатированный жесткий диск, на котором с помощью кода я создал один раздел, назначил букву диска и, наконец, отформатировал жесткий диск (как NTFS).
Код работает нормально, однако Windows отображаетвсплывающее окно, а также отображает уведомление после форматирования и открытия проводника Windows на этом диске.Я хотел бы как минимум не иметь всплывающее уведомление.
Вот код, просто чтобы дать вам представление о том, что яделать.
Process oProcess = new Process();
...
StringBuilder sb = new StringBuilder();
sb.AppendLine($"SELECT DISK={disk}");
sb.AppendLine($"SELECT PARTITION {partition}");
sb.AppendLine($"ASSIGN LETTER={driveNext}");
sb.AppendLine($"EXIT");
// Write the script to a file.
String fileScript = Path.GetTempFileName();
fileScript = Path.ChangeExtension(fileScript, @"scr");
pathScript = Path.Combine(Path.GetTempPath(), fileScript);
File.WriteAllText(pathScript, sb.ToString());
// Set process start information.
ProcessStartInfo oProcessStartInfo = new ProcessStartInfo()
{
FileName = @"diskpart.exe",
Arguments = $"/s {pathScript}",
CreateNoWindow = true,
// Set UseShellExecute to false for redirection of the standard output.
UseShellExecute = false,
// Redirect standard input as well. This stream is used asynchronously.
RedirectStandardOutput = true,
RedirectStandardInput = true,
};
// Start the process setting our event handler to asynchronously read the command standard output.
oProcess.StartInfo = oProcessStartInfo;
...
oProcess.Start();
...
// Wait for the process to complete.
oProcess.WaitForExit();
...
То, что я хочу, это тихий пользовательский опыт и отсутствие окон и уведомлений, летящих на пользователя, включая область уведомлений в Windows 10. Я думаю, может быть, есть изменение реестра, которое яможно временно сделать во время операции, чтобы заставить Windows замолчать.Может быть, есть что-то еще.
Возможно ли временно замолчать Windows, и если да, то как?
UPDATE 2
Рекомендуется Smartis этот вопрос так же, как этот вопрос.Этот пользователь хорошо сформулировал вопрос в том смысле, что пользователь действительно может нанести ущерб, отвечая на формат.
Принятый ответ, а именно отформатировать диск с помощью DiskPart.exe
и затем назначить букву диска, - это то, что я делаютеперь, см. Обновление 1 ниже.Этот подход, очевидно, работает с Windows Server 2008R2, но он не работает с моей копией Windows 10 Professional X64.Да, я породил еще один процесс с TrueNoWindow, установленным в true.
Этот пользователь сказал, что одним из ответов будет остановка службы обнаружения оборудования, но это не было решением, которое он достойно поместил бы в код.Согласен.Я надеюсь, что это не единственный способ, поэтому мы снова здесь.
Мысли?
UPDATE 1
Я не думал, чтоупомяну еще одну небольшую проблему ранее, но, основываясь на комментариях Бена и новых исследованиях, я теперь.
Первоначально я хотел отформатировать диск в команде DiskPart.exe
, но это не удалось.Несколько сайтов, на которые я смотрел, дали следующий код:
sb.AppendLine($"SELECT DISK={disk}");
sb.AppendLine($"SELECT PARTITION {partition}");
sb.AppendLine($"ASSIGN LETTER={driveNext}");
sb.AppendLine($"FORMAT FS=NTFS LABEL='{diskLabel}' QUICK");
sb.AppendLine($"EXIT")
Затем я провел новое исследование после комментария Бена и придумал эту статью , которая решила более раннюю проблемуформатирование диска и назначение буквы диска внутри одного вызова DiskPart.exe
.
Вот рабочий скрипт DiskPart.exe
для назначения буквы диска и форматирования диска.Для чего бы это ни стоило, в этом сценарии, не показанном, я также создаю раздел.
sb.AppendLine($"SELECT DISK={disk}");
sb.AppendLine($"SELECT PARTITION 1");
sb.AppendLine($"ACTIVE");
sb.AppendLine($"FORMAT FS=NTFS LABEL='{diskLabel}' QUICK");
sb.AppendLine($"ASSIGN LETTER={driveNext}");
sb.AppendLine($"EXIT");
Изначально проблема заключалась в том, что у меня не было строки ACTIVE
, а во-вторых, что я поставил ASSIGN
строка после строки FORMAT
.
К сожалению, я все еще вижу окно сообщения и уведомление, хотя уведомление в области уведомлений Windows 10 является незначительным раздражением, возможно, даже желательным.
Мысли