Quer o inputbox quer o msgbox têm variantes e permitem algumas modificações quanto ao aspecto. Além disso, permitem processar a resposta aos botões premidos. Por exemplo:
' bonecada1.vbs 19:10 12-05-2008
' Ilustração de uso de botões
' e tratamento da resposta
' Criar uma variável para obter a resposta
dim Resposta
' Fazer a pergunta
Resposta= msgbox ("Prima uma destas:",_
vbRetryCancel+vbQuestion,"Título 10")
'Processar a resposta
select case Resposta
case vbRetry
msgbox "Premiu Repetir",vbInformation
case vbCancel
msgbox "Premiu Cancelar",vbInformation
case else
msgbox "Sei lá eu o que você fez!"
end select
' Fim com mais umas funções
msgbox "Fim - " & scriptengine & " " & _
scriptenginemajorversion & "." &_
scriptengineminorversion,_
vbInformation
' FIM
Neste caso, apresenta-se uma caixa com botões Repetir ou Cancelar, a que se adicionou o ícone de Pergunta. O resultado é recolhido na variável Resposta, que foi já criada. Essa resposta é depois processada num select..case, comparando-a com os valores predefinidos vbCancel e vbRetry.
No fim, aproveitámos para espreitar qual é o interpretador de script e qual a versão (ScriptEngine, ScriptEngineMajorVersion, ScriptEngineMinorVersion).
Para vermos mais botões:
'bonecada.vbs 19:24 12-05-2008
dim Resposta
msgbox "Exclamation!",vbExclamation,"Título 1"
msgbox "Information",vbInformation,"Título 2"
msgbox "Question",vbQuestion,"Título 3"
msgbox "Critical",vbCritical+vbSystemModal,"Título 4"
msgbox "Ok Only",vbOkOnly,"Título 5"
msgbox "Ok / Cancel",vbOkCancel,"Título 6"
msgbox "Abort, retry or ignore",vbAbortRetryIgnore,"Título 7"
msgbox "Yes, No, Cancel",vbYesNoCancel+vbDefaultButton3,"Título 8"
msgbox "Yes / No",vbYesNo,"Título 9"
Resposta= msgbox ("Retry / Cancel",vbRetryCancel,"Título 10")
select case Resposta
case vbRetry
msgbox "Premiu Retry"
case vbCancel
msgbox "Premiu Cancel"
case else
msgbox "Sei lá o que você fez!"
end select
msgbox "Fim",vbInformation
vbSystemModal e vbApplicationModal não deixam o script prosseguir sem uma resposta. vbDefaulButton3 torna o terceiro botão o pré-seleccionado; pode fazê-lo para os primeiros quatro botões.
Tudo isto se aplica também à instrução inputbox. Tem, no entanto, peculiaridades. As variáveis têm de ser declaradas, e depois processadas por ordem. Por exemplo, neste código:
' bonecada2.vbs 19:58 12-05-2008
dim Nome, vbCancel, vbOk
Nome= inputbox ("Diga o seu nome")
select case Nome
case vbOk ' vale 1
msgbox "Premiu Ok"
case vbCancel ' vale 2
msgbox "Cancelar"
case else
msgbox "Hm?"
end select
msgbox "Resultado: " & Nome
se colocar o case vbOk depois do case vbCancel, aquele nunca é processado. Isto não deveria acontecer.
Outros valores possíveis para a resposta são vbAbort (vale 3), vbRetry (4), vbIgnore (5), vbYes (6) e vbNo (7).
Início: 19:17 12-05-2008
Última modificação: 20:00 12-05-2008