Как мне обернуть команду в сообщение да / нет? - PullRequest
1 голос
/ 04 июня 2019

Я хотел бы поставить следующий код в состояние да / нет, может быть, даже с временным «да» (по умолчанию), равным 10 секундам.Я посмотрел вокруг и нашел несколько ответов, но, к сожалению, у меня нет доступа к тестовой среде, которая позволила бы мне быстро получить результаты.

Мои VBS:

Set objShell = CreateObject("WScript.Shell")
cmd = "%comspec% /c diskpart /s X:\cleandisk.txt"
objShell.Run cmd,1,1    ' Run the command in a window and wait for a return

IХотелось бы иметь возможность предложить либо запустить, либо обойти это.Контекст является средой MDT.Цель состоит в том, чтобы протереть диск перед созданием образа.К сожалению, он работает все время, и когда я собираюсь сделать снимок, он стирает диск (упс).Таким образом, вместо того, чтобы чрезмерно усложнять ограниченные ресурсы, простое «да» или «нет» - это лучший вариант для моей ситуации.

Как вариант, я бы хотел установить таймер обратного отсчета на 10 секунд по умолчаниюответ «да».

Как я упоминал ранее, я не против того, чтобы разобраться сам, но у меня ограниченные ресурсы (vbs editos, тестовая среда и т. д.) для этого на работе.

1 Ответ

1 голос
/ 04 июня 2019

Вы можете использовать метод Popup.

Dim objShell: Set objShell = CreateObject("WScript.Shell")

Select Case objShell.Popup("Run this? Will autorun in 10 seconds!", 10, "Title", 1)
Case -1 
    'Timed Out
Case 1
    'OK Pressed
Case 2
    'Cancel Pressed
End Select

Возвращаемые значения

  • -1 Значение: тайм-аут MsgBox. Вы можете комбинировать это с вариантом 1, поскольку вы хотите, чтобы они выполняли одно и то же действие (см. Ниже)
  • 1 Значение: пользователь нажал кнопку «ОК»
  • 2 Значение: пользователь нажал кнопку «Отмена»

Поскольку вы хотите обрабатывать тайм-аут так же, как пользователь нажимает «ОК», вы можете объединить два значения в один регистр:

Dim objShell: Set objShell = CreateObject("WScript.Shell")

'                                               This is the timeout ↓↓ 
Select Case objShell.Popup("Run this? Will autorun in 10 seconds!", 10, "Title", 1)
Case -1, 1
    cmd = "%comspec% /c diskpart /s X:\cleandisk.txt"
    objShell.Run cmd,1,1
Case 2
    ' Do nothing
End Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...