Как я могу скрыть командную строку в программе VB, но при этом выполнить действие?

Я создаю программу, которая будет форматировать флешки, выбранные пользователем. Я делаю это, используя процесс format.com. Проблема с сокрытием окна командной строки заключается в том, что командная строка требует, чтобы вы нажали клавишу ввода, чтобы начать форматирование диска. Есть ли способ обойти это? Кроме того, в любом случае VB может сказать, когда командная строка завершена, чтобы я мог создать сообщение о том, что форматирование завершено? Мой соответствующий код ниже.

For j = 0 To drives.Length() - 1
            Dim formatProcess As New ProcessStartInfo("format.com", drives(j) & "/Q /FS:NTFS /V:" & formattedDate)
            formatProcess.WindowStyle = ProcessWindowStyle.Hidden
            formatProcess.CreateNoWindow = True
            Process.Start(formatProcess)
        Next

person Josh    schedule 16.06.2015    source источник
comment
Попробуйте использовать WaitForExit чтобы дождаться завершения процесса.   -  person Rein S    schedule 16.06.2015


Ответы (1)


Вместо того, чтобы скрывать его, вы можете немедленно нажать клавишу ввода (и затем, возможно, скрыть его).

Ты можешь это сделать:

SendKeys.Send("{ENTER}")

Что касается ощущения, когда это делается:

Есть ли процесс, который проявляется во время форматирования? Если это так, вы можете проверить этот процесс и отобразить сообщение, когда процесса нет.

person Sastreen    schedule 16.06.2015
comment
Есть ли хороший способ отсрочить это? Клавиша ввода, похоже, взаимодействует с моей реальной программой, поэтому при выборе кнопки «Формат» открываются две командные строки. Похоже, это связано с тем, что командная строка не полностью открылась до отправки ключа ввода. - person Josh; 16.06.2015
comment
Лучше всего дождаться запуска командного процесса. Но дешевым способом было бы просто сделать Threading.Thread.Sleep(2000) (что в данном случае ждет 2000 мс = 2 с) - person Sastreen; 16.06.2015
comment
@user3517647 user3517647 Имеет ли это смысл? - person Sastreen; 16.06.2015
comment
Да, это так. Сегодня у меня был только короткий рабочий день, но я попробую завтра и дам вам знать, как это работает. - person Josh; 16.06.2015
comment
@ user3517647 Звучит здорово. Дайте мне знать, как это происходит. - person Sastreen; 16.06.2015