Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Dsalomon en 7 Octubre 2013, 22:30 pm



Título: minimizar en SYSTRAY
Publicado por: Dsalomon en 7 Octubre 2013, 22:30 pm
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
  1. START /MIN

dentro del mismo batch y que funcione


agradezco su tiempo


Título: Re: minimizar en SYSTRAY
Publicado por: Eleкtro en 7 Octubre 2013, 22:45 pm
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í (http://bit.ly/GJpH2Z)

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

De todas maneras la sintaxis correcta es:
Código
  1. 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
  1. IF "%~1" EQU "" (Start /MIN "" "%~f0" Elektro & Exit)

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

Saludos


Título: Re: minimizar en SYSTRAY
Publicado por: Dsalomon en 7 Octubre 2013, 22:51 pm
Y claro maestro si puedes optimizar el código... estaré aun mas feliz...


Código
  1. ::START /MIN
  2. :Comprobar
  3. tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
  4. IF %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
  5. IF NOT %ERRORLEVEL% LEQ 0 goto :Comprobar
  6.  
  7. :Esperar
  8. tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
  9. IF %ERRORLEVEL% LEQ 0 goto :Esperar
  10. IF NOT %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul & goto :Comprobar


Título: Re: minimizar en SYSTRAY
Publicado por: Dsalomon en 7 Octubre 2013, 23:04 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
  1. IF "%~1" EQU "" (Start /MIN "" "%~f0" CODIGO FINAL)
  2. :Comprobar
  3. tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
  4. IF %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
  5. IF NOT %ERRORLEVEL% LEQ 0 goto :Comprobar
  6.  
  7. :Esperar
  8. tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
  9. IF %ERRORLEVEL% LEQ 0 goto :Esperar
  10. 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


Título: Re: minimizar en SYSTRAY
Publicado por: Eleкtro en 7 Octubre 2013, 23:16 pm
sobre lo de la optimizaciónd e código, puedes probar algo así:

Código
  1. @Echo OFF
  2.  
  3. Set "ProcessName=mpc-hc64.exe"
  4.  
  5. :Comprobar
  6. Tasklist /FI "IMAGENAME eq %ProcessName%" | Find /I "%ProcessName%" 1>NUL && (
  7. (
  8. Start /B "" "%UserProfile%\Desktop\clever pause\clever.exe" pause 1>NUL | Taskkill /F /T /IM "TxtTick.exe" 1>NUL
  9. ) & GOTO :Esperar
  10. )
  11.  
  12. :Esperar
  13. (
  14. Tasklist /FI "IMAGENAME eq %ProcessName%" | Find /I "%ProcessName%" 1>NUL || (Goto :Esperar)
  15. ) && (
  16. Start /B "" "%UserProfile%\Desktop\clever pause\clever.exe" pause 1>NUL
  17. Goto :Comprobar
  18. )
  19.  
  20. 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
  1. 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
  1. ' Run Hidden Process
  2. ' By Elektro H@cker
  3.  
  4. Process   = """" & WScript.Arguments(0) & """"
  5. Arguments = null
  6.  
  7. For X = 1 to WScript.Arguments.Count - 1
  8.   Arguments = Arguments & " " & _
  9.               """" & WScript.Arguments(X) & """"
  10. Next
  11.  
  12. WScript.CreateObject("WScript.Shell").Run _
  13. Process & " " & Arguments, 0, False
  14.  
  15. Wscript.Quit

Saludos