Archivo por lotes de inicio de Windows 7 oculto

Archivo por lotes de inicio de Windows 7 oculto

Seguí una guía para crear un archivo por lotes para poder retrasar el inicio de un programa durante unos segundos. (No quería utilizar una herramienta de terceros)

La cuestión es que no quiero ver esa ventana de cmd durante X segundos hasta que inicie ese programa. ¿Algunas ideas?

Aquí está el código que estoy usando dentro del archivo .bat:

@ECHO OFF
TIMEOUT /t 3 > nul
START "" "C:\program.exe"

Respuesta1

Este script visual básico hace 3 cosas.

~ Toma el directorio actual donde .VBSestá almacenado y toma un nombre de archivo.
~ Ejecuta el archivo proporcionado con privilegios de administrador. (no solicita UAC)
~ Ejecuta el archivo de forma silenciosa, sin el CMD que mencionas.

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/pegue el siguiente código y guárdelo como .VBS. Pon el . vbsscript en el mismo directorio que el suyo .baty cambie "CUSTOMNAMEOFBAT" (al final de la línea 11) por el nombre de su .bat.

información relacionada