minimizar en SYSTRAY

Iniciado por Dsalomon, 7 Octubre 2013, 22:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Dsalomon

Si tengo un batch... cualquiera... como puedo hacer para que desde el mismo se inicie minimizado o minimizado en SYSTRAY?
o como colocar el


Código (dos) [Seleccionar]
START /MIN

dentro del mismo batch y que funcione


agradezco su tiempo

Eleкtro

#1
No puedes minimizar la CMD al system tray...
Si abres la CMD como podrás comprobar no tiene ningun botón para minimizar al área de notificaciones... como mucho puedes instalar/utilizar algún reemplazamiento de terceros de la consola de Windows, con suerte quizás a alguna de esas "Custom CMD" le hayan integrado alguna opción para minimizar al systray... puedes buscar -> aquí

Muestra el código en el que dices que no te funciona el switch "/MIN".

De todas maneras la sintaxis correcta es:
Código (dos) [Seleccionar]
Start /MIN "" "Script.bat"

EDITO:
Si lo que pretendes es que el mismo script se inicie de forma minimizada cuando haces doble click sobre él, no es posible, la ventana del CMD no se inicia por defecto minimizada... y no existe ningún comando para minimizar la CMD...
Pero puedes disimularlo añadiendo esto a la cabecera del script:

Código (dos) [Seleccionar]
IF "%~1" EQU "" (Start /MIN "" "%~f0" Elektro & Exit)

O puedes usar VisualBasicScript para iniciar la CMD de manera oculta.

Saludos








Dsalomon

#2
Y claro maestro si puedes optimizar el código... estaré aun mas feliz...


Código (dos) [Seleccionar]
::START /MIN
:Comprobar
tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
IF NOT %ERRORLEVEL% LEQ 0 goto :Comprobar

:Esperar
tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 goto :Esperar
IF NOT %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul & goto :Comprobar

Dsalomon

#3
Cita de: EleKtro H@cker en  7 Octubre 2013, 22:45 PM
O puedes usar VisualBasicScript para iniciar la CMD de manera oculta


bien, de VBS no se mucho, pero habra alguna manera que inicie minimizado asi?

Suponiendo que mi archivo se llame:

CODIGO FINAL.bat

Código (dos) [Seleccionar]
IF "%~1" EQU "" (Start /MIN "" "%~f0" CODIGO FINAL)
:Comprobar
tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
IF NOT %ERRORLEVEL% LEQ 0 goto :Comprobar

:Esperar
tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 goto :Esperar
IF NOT %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul & goto :Comprobar



disculpa que te lo pregunte en lugar de probarlo pero lo tengo en produccion y no puedo interrumpir la pc...  :xD
gracias

Eleкtro

sobre lo de la optimizaciónd e código, puedes probar algo así:

Código (dos) [Seleccionar]
@Echo OFF

Set "ProcessName=mpc-hc64.exe"

:Comprobar
Tasklist /FI "IMAGENAME eq %ProcessName%" | Find /I "%ProcessName%" 1>NUL && (
(
Start /B "" "%UserProfile%\Desktop\clever pause\clever.exe" pause 1>NUL | Taskkill /F /T /IM "TxtTick.exe" 1>NUL
) & GOTO :Esperar
)

:Esperar
(
Tasklist /FI "IMAGENAME eq %ProcessName%" | Find /I "%ProcessName%" 1>NUL || (Goto :Esperar)
) && (
Start /B "" "%UserProfile%\Desktop\clever pause\clever.exe" pause 1>NUL
Goto :Comprobar
)

Pause&Exit


Aunque no lo he testeado, no tengo las herramientas y no se si la ruta del directorio es correcta.






sobre lo de VBS, es muy facil:
Código (vb) [Seleccionar]
WScript.CreateObject("WScript.Shell").Run """" & "C:\Directorio\Archivo.bat" & """", 0, False
Lo guardas como "Invisible.vbs" y lo ejecutas.


Y esta modificación es para ejecutar un proceso de forma oculta y pasándole argumentos desde la consola.
Citar
Código (vb) [Seleccionar]
' Run Hidden Process
' By Elektro H@cker

Process   = """" & WScript.Arguments(0) & """"
Arguments = null

For X = 1 to WScript.Arguments.Count - 1
  Arguments = Arguments & " " & _
              """" & WScript.Arguments(X) & """"
Next

WScript.CreateObject("WScript.Shell").Run _
Process & " " & Arguments, 0, False

Wscript.Quit

Saludos