
Segui um guia para criar um arquivo em lote para poder atrasar a inicialização de um programa por alguns segundos. (Eu não queria usar uma ferramenta de terceiros)
O problema é que não quero ver aquela janela do cmd por X segundos até que o programa seja iniciado. Alguma ideia?
Aqui está o código que estou usando no arquivo .bat:
@ECHO OFF
TIMEOUT /t 3 > nul
START "" "C:\program.exe"
Responder1
Este script visual básico faz três coisas.
~ Pega o diretório atual onde .VBS
está armazenado e recebe um nome de arquivo.
~ Executa o arquivo fornecido com privilégios de administrador. (não solicita o UAC)
~ Executa o arquivo silenciosamente, sem o CMD mencionado.
bElevate = False
if WScript.Arguments.Count > 0 Then If WScript.Arguments(WScript.Arguments.Count-1) <> "|" then bElevate = True
if bElevate Or WScript.Arguments.Count = 0 Then ElevateUAC
REM run the following script with admin privilages. start point.
Set fso = CreateObject("Scripting.FileSystemObject")
GetTheParent = fso.GetParentFolderName(Wscript.ScriptFullName)
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run GetTheParent & ("\CUSTOMNAMEOFBAT.bat")
WScript.Sleep 500
REM the above script will be run with admin privilages. end point.
Sub ElevateUAC
sParms = " |"
If WScript.Arguments.Count > 0 Then
For i = WScript.Arguments.Count-1 To 0 Step -1
sParms = " " & WScript.Arguments(i) & sParms
Next
End If
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "wscript.exe", WScript.ScriptFullName & sParms, , "runas", 1
WScript.Quit
End Sub
Copie/cole o código a seguir e salve como .VBS
. Coloque o . vbs
script no mesmo diretório que o seu .bat
e altere "CUSTOMNAMEOFBAT" (no final da linha 11) para o nome do seu arquivo .bat
.