Сегодня я начал пытаться создавать свои собственные диалоговые окна для Windows. Я могу использовать ярлык /wscript.exe для запуска файла VBS со следующим: (пожалуйста, игнорируйте диалог. Я знаю, что диск C: не будет уничтожен, и я не собираюсь этого делать. Это просто практика, прежде чем я сделаю полезные.)

Option Explicit
x=MsgBox("Proceeding will wipe the contents of your C: Drive. Proceed?", 1+48, "Format Drive C:")

Мои сценарии работают до этого момента, как показано ниже:

Но когда я нажимаю кнопку ОК или Отмена на этом этапе, я получаю сообщение об ошибке. В прошлом нажатие кнопки «ОК» или «Отмена» полностью закрывало все это, но теперь я получаю ошибку времени выполнения, которая, на мой взгляд, лучше, чем ничего. Однако ошибка не помогает мне.

Option Explicit
x=MsgBox("Proceeding will wipe the contents of your C: Drive. Proceed?", 1+48, "Format Drive C:")
If x=1 Then
y=MsgBox("The contents of your C: Drive could not be successfully deleted.", 0+64, "Error Formatting Drive C: - System Error 5")
If x=2 Then
x=MsgBox("Not all of the contents of your C: Drive were successfully deleted. Please try again.", 0+64, "Error Formatting Drive C: - System Error 303")

Если я добавляю "инструкции" о том, что должно произойти дальше, то при открытии файла я получаю сообщение об ошибке и вообще ничего не могу сделать

Я уже пытался изменить большую часть кода. Я пытался использовать dim, удаляя x, определяя переменную, определяя последующие msgboxs как переменные, удаляя скобки и т.д ... Я только начал писать свои собственные файлы VBS сегодня, но я давно выполняю пакетные сценарии с файлами .bat. Даже со сменой языка все мои неисправности ни к чему не привели, и я почти уверен, что правильно определил переменную.

Может кто-нибудь сказать мне, если я сделал это правильно? Я пробовал множество примеров, но даже официальная веб-страница Microsoft на VBS-MsgBox бесполезна. Я заранее прошу прощения, если я где-то допустил глупую ошибку, но я уже изменил почти весь код, и я все еще застрял.

Любая помощь будет принята с благодарностью. Я уже провел 4 часа, пытаясь решить эту проблему.

1 ответ1

2

Попробуйте для этого примера:

Option Explicit
Dim Title,Question
Title = "user input in VBS with MsgBox"
Question = MsgBox("Proceeding will wipe the contents of your C: Drive. Proceed ?",vbYesNo+vbQuestion, Title)
If Question = vbYes Then
    MsgBox "We proceed wipping your C:\ drive",vbExclamation,Title
    'Call your sub here to continue proceeding your script
Else
    MsgBox "Canceling the operation !",vbCritical,Title
    Wscript.Quit()
End If

Для получения дополнительной информации о константах MsgBox

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .