elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)  (Leído 8,575 veces)
morganfreeman

Desconectado Desconectado

Mensajes: 6


Ver Perfil
BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« en: 3 Febrero 2015, 08:24 am »

Hola a  todos !
Bueno, necesito hacer un batch que cada 10 minutos verifique si un software .exe esta ejecutandose, si se esta ejecutando, que vuelva a verificar en 10 minutos y asi sucesivamente, en el caso de que no este ejecutandose, que lo inicie, se puede hacer eso?


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #1 en: 3 Febrero 2015, 16:17 pm »

si se puede, has investigado como se hace? te trancaste en algo haciendolo?


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
morganfreeman

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #2 en: 3 Febrero 2015, 17:12 pm »

Antes que nada muchas gracias por responder.
Lo he logrado con esto:
Código
  1. :Ocultar
  2. @echo off
  3. title Chequeador de NPC Server
  4.  
  5. :Comprobar
  6. tasklist /FI "IMAGENAME eq L2NPC.exe" | findstr PID >nul
  7. IF %ERRORLEVEL% LEQ 0 Ping -n 60 localhost >nul & goto :Comprobar
  8. IF NOT %ERRORLEVEL% LEQ 0 start /b D:\"test\L2NPC\L2NPC".exe & Ping -n 60 localhost >nul & goto :Comprobar

Pero cuando inicio el programa en forma manual, el programa se ejecuta normalmente, pero cuando lo inicia el batch, este aparece en la lista del Administrador de Tareas, pero no aparece el programa en si, osea me figura que se esta ejecutando pero en realidad no lo esta, que sera?
« Última modificación: 3 Febrero 2015, 17:16 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #3 en: 3 Febrero 2015, 17:24 pm »

cuando inicio el programa en forma manual, el programa se ejecuta normalmente, pero cuando lo inicia el batch, este aparece en la lista del Administrador de Tareas, pero no aparece el programa en si, osea me figura que se esta ejecutando pero en realidad no lo esta, que sera?

No entiendo lo que quieres decir, pero de todas formas estás utilizando incorrectamente el comando START, lee la ayuda del comando:
Código:
Start /?

Aparte de eso estás usando el operador de concatenación sin agrupar los comandos "(command1 & command2)", seguramente no se procesen las condiciones correctamente debido a eso, así que reemplaza el bloque del label :Comprobar por este otro:
Código
  1. :Comprobar
  2. (TaskList.exe /FI "IMAGENAME eq L2NPC.exe" | Find /I "L2NPC")1>Nul 2>&1 || (
  3. Start /B "Titulo" "D:\test\L2NPC\L2NPC.exe"
  4. )
  5. (Ping.exe -n 60 LOCALHOST)1>Nul
  6. Goto :Comprobar

Saludos
« Última modificación: 3 Febrero 2015, 17:29 pm por Eleкtro » En línea



morganfreeman

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #4 en: 3 Febrero 2015, 17:50 pm »

He probado mi mismo código pero con la calculadora y funciona correctamente:

Código:
:Ocultar
@echo off
title Chequeador de NPC Server

:Comprobar
tasklist /FI "IMAGENAME eq calc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 Ping -n 60 localhost >nul & goto :Comprobar
IF NOT %ERRORLEVEL% LEQ 0 start /b c:\"windows\system32\calc".exe & Ping -n 60 localhost >nul & goto :Comprobar

La calculadora no solo aparece en la lista del Administrador de Tareas sino que también se ejecuta normalmente.
En cambio cuando reemplazo por el exe que realmente necesito ejecutar, lo cierro manualmente a propósito para ver si el batch lo inicia nuevamente pero este, solo se inicia en la lista del Administrador de Tareas, pero el programa no aparece, no se ejecuta con su ventana normal. Sera problema del batch o sera un problema particular del .exe que necesito ejecutar?
Se entiende?
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #5 en: 3 Febrero 2015, 18:02 pm »

La calculadora no solo aparece en la lista del Administrador de Tareas sino que también se ejecuta normalmente.
En cambio cuando reemplazo por el exe que realmente necesito ejecutar, lo cierro manualmente a propósito para ver si el batch lo inicia nuevamente pero este, solo se inicia en la lista del Administrador de Tareas, pero el programa no aparece, no se ejecuta con su ventana normal. Sera problema del batch o sera un problema particular del .exe que necesito ejecutar?
Se entiende?

Creo que ya entiendo a lo que te refieres, ¿el programa L2NPC tiene una interface command-line?, entonces al utilizar el comando start el programa se ejecuta en la misma instancia de la CMD que tienes abierta, para evitar que esto ocurra puedes hacerlo así:
Código
  1. Start "" CMD /K " "D:\test\L2NPC\L2NPC.exe" "

Ten en cuenta que el comportamiento de un programa como la calculadora de Windows, que usa una interfáz Gráfica, con un programa que usa una intefáz por linea de comandos, es completamente diferente, cuando termina la ejecución del programa commandline éste desaparece del taskmanager, aunque realmente no se si es eso a lo que te estás refiriendo.

PD: De todas formas, sigues utilizando muy malas prácticas de programación en el código que has mostrado y podría ocasionarte problemas, porfavor, reemplazalo por el ejemplo que te he mostrado anteriormente.

Saludos!
« Última modificación: 3 Febrero 2015, 18:12 pm por Eleкtro » En línea



morganfreeman

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #6 en: 3 Febrero 2015, 18:46 pm »

Hola, antes que nada muchas gracias por responder!
L2NPC.exe tiene una interfaz gráfica, cuando lo ejecuto en forma manual se abre una ventana que muestra lo que se esta ejecutando.
Este programa es muy inestable, razones que no vienen al caso.
Se cierra 2 o 3 veces al dia, lo que necesito con un batch, es que cuando se cierre, lo vuelva a abrir.

Me parece que es un problema particular del exe, ya que cuando lo inicio manualmente, este se ejecuta bien y queda prendido en su interfaz grafica y aparece en la lista del Administrador de Tareas, pero cuando lo ejecuta el batch, este SI aparece en la lista del Administrador de tareas, pero no aparece su interfaz grafica.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #7 en: 3 Febrero 2015, 18:56 pm »

Hola, antes que nada muchas gracias por responder!
L2NPC.exe tiene una interfaz gráfica, cuando lo ejecuto en forma manual se abre una ventana que muestra lo que se esta ejecutando.
Este programa es muy inestable, razones que no vienen al caso.
Se cierra 2 o 3 veces al dia, lo que necesito con un batch, es que cuando se cierre, lo vuelva a abrir.

Me parece que es un problema particular del exe, ya que cuando lo inicio manualmente, este se ejecuta bien y queda prendido en su interfaz grafica y aparece en la lista del Administrador de Tareas, pero cuando lo ejecuta el batch, este SI aparece en la lista del Administrador de tareas, pero no aparece su interfaz grafica.

¿Puedes compartir el exe o una url de descarga, para analizarlo mejor?

saludos!
En línea



morganfreeman

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #8 en: 3 Febrero 2015, 20:30 pm »

Lamentablemente este exe necesita de otros 3 exes para poder ejecutarse, pero te lo paso igual.

https://mega.co.nz/#!rEUiRLYT!jy0dVaQiqQ8rf-1SGf_gvks5JqOYnywHvmyMy8vam0c
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: BATCH (Verificacion x tiempo si soft esta ejecutandose, caso contrario iniciar)
« Respuesta #9 en: 4 Febrero 2015, 02:31 am »

Lamentablemente este exe necesita de otros 3 exes para poder ejecutarse, pero te lo paso igual.

https://mega.co.nz/#!rEUiRLYT!jy0dVaQiqQ8rf-1SGf_gvks5JqOYnywHvmyMy8vam0c

Si no puedo ejecutarlo en condiciones no puedo evaluarlo e intentar solucionarlo en Batch u otro lenguaje.

Lo he testeado en dos VMs pero el debugger registra un error (de lectura de memoria) antes de que el programa pueda cargar la UI:
Código:
An Access Violation in module L2NPC.exe at 0033:0046adaf.
Read from location 00000a00 caused an access violation.

¿Es un programa comercial?, ¿no hay una url de descarga ni dispones de un paquete de instalación?.

Saludos
« Última modificación: 4 Febrero 2015, 02:33 am por Eleкtro » En línea



Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines