Vota por nosotros en el ranking web que participamos

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Octubre 14, 2008, 01:04:09
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Como Matar un Proceso pero No Inmediatamente 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: 1 [2] 3 Ir Abajo Imprimir
Autor Tema: Como Matar un Proceso pero No Inmediatamente  (Leído 767 veces)
registrosmardirossian
Colaborador
*****
Desconectado Desconectado

Mensajes: 670



Ver Perfil WWW Email
« Respuesta #15 en: Enero 23, 2007, 04:56:40 »

Bueno quisas asi tambien...
CODE para el tiempo: a los 2 minutos se ejecuta el taskkill. Batch llamado Timer.bat:

-------------------------------------------------------------------

  @echo off

:INICIO

set Thora=%time:~0,-6%
set minutos=%Thora:~-2%

IF %minutos%==57 (goto error) else (if %minutos%==58 goto error) && (if %minutos%==59 goto error)

set minutosasumar=2
set /a minutosumado=%minutos% + %minutosasumar%
goto continua

:error
set hs=%time:~0,-9%
set minutoarestar=3
set /a minutorestado=%minutos% - %minutoarestar%
TIME %HS%:%minutorestado%

GOTO INICIO

:continua

set hs=%time:~0,-9%
at %hs%:%minutosumado% /interactive c:\task.bat

EXIT

-------------------------------------------------------------------

Y luego has un bat llamado  Task.bat con el siguiente CODE

  @ echo off
taskkill /f /IM msnmsgr.exe
call Timer.bat
exit

-------------------------------------------------------------------

Entonces siempre a los dos minutos, exista o no el Proceso msnmsgr.exe sera elminado.

Suerte
SAlu2 Grin Grin Grin Grin
*EOF*
« Última modificación: Enero 23, 2007, 04:58:45 por registrosmardirossian » En línea

Suerte
SAlu2 Cheesy Cheesy Cheesy Cheesy
*EOF*


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Web

darknessfeatsunny
Visitante
« Respuesta #16 en: Enero 29, 2007, 09:46:09 »

MUY BIEN...por fin algien se lo curra::

solo un par de cosillas:

IF %minutos%==57 (goto error) else (if %minutos%==58 goto error) && (if %minutos%==59 goto error)

IF %minutos% GEQ 57 (goto error)

aciendo ese cambio aorras espacio...mucho espacio...(if/?)


y ya que estamos,dejame que te mejore el batch:


 @echo off

:INICIO

set hora=%time:~,-9%
set minutos=%time:~-8,2%

IF %minutos% GTR 57 (goto error)

set minutosasumar=2
set /a minutos=%minutos% + 2
goto continua

:error
if hora GTR 22 (set hora=00 && set minutos=00 && goto continua)
set /a hora=%hora% + 1
set minutos=00

set /a minutorestado=%minutos% - %minutoarestar%
TIME %HS%:%minutorestado%

GOTO INICIO

:continua

set hs=%time:~0,-9%
at %hora%:%minutos% /interactive c:\task.bat

EXIT


Lo que esta en verde fue lo que modifique con respecto del batch original,lo que esta en rojo fue lo que elimine de batch original...lo que esta en blanco,esta bien,no lo toque...

con este batch,sea la ora del dia que sea,se añade la tarea para exactamente 2 minutos despues...

este seria casi el codigo definitivo...solo le veo un pequeño fallo,que si ustedes se dan cuenta pues se lo arreglo,si no pues nada...jejeje

por lo demas es funcional 100%...o eso espero...

Un saludo
« Última modificación: Enero 29, 2007, 10:11:05 por DarknessFeatSunny » En línea
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #17 en: Enero 29, 2007, 10:18:03 »


Venga, alguien me aydua a este code que no entiendo mucho codigo batch con tiempo...

set hora=%time:~,-9%                 ---> time:~, -9 ?
set minutos=%time:~-8,2%          ---> time:~-8,2 ?

Haber si me lo explican por favor, Saludos!

En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
darknessfeatsunny
Visitante
« Respuesta #18 en: Enero 29, 2007, 10:42:22 »


Venga, alguien me aydua a este code que no entiendo mucho codigo batch con tiempo...

set hora=%time:~,-9%                 ---> time:~, -9 ?
set minutos=%time:~-8,2%          ---> time:~-8,2 ?

Haber si me lo explican por favor, Saludos!

encantado...

mira time es una variable del sistema que nos devuelve la hora actual del mismo,en este formato:

18:21:14,45

bien,al igual que la variable time,tabien encotramos otras variables como date(fecha),windir(directorio de windows)...y un largisimo etc...

con esas variables se puede trabajar,se pueden tratar de un modo especial,para solo coger lo que nos interese de ella...

bien,eso se ace a traves de eso dos puntitos y los numeros qe vienen a continuacion... separados por coma...

te explicare que funcion tienen.

el primer numero (%time:~-8,2%) especifica un inicio dentro de la cadena de caracteres,si es positivo se cuenta desde el principio,si es negativo se cuenta desde el final...es decir,si la cadena time es esta:

18:21:14,45

ese numero,al ser negativo,secuenta 8 desde el final de la cadena y situa el inicio en:

18:21:14,45

bien,el segundo modificador (%time:~-8,2%),epecifica el final de esa cadena que se qiere tomar...e igual que anets,si es positivo se cuenta desde el punto de inicio establecido por el primer modificador,si es negativo se cuenta desde el final...por tanto al ser positivo,se contarian 2 desde el punto de inicio establecido...(incluyendolo) por tanto el final qedaria asi:

18:21:14,45

aora,empezando por el primero y acabando en el segundo la cadena tomada seria esta

%time:~-8,2%=>21

ayi donde yo ponga %time:~-8,2%,aparecera un 21....

en el caso de que uno de los modificadores no se especifique como el caso de

%time:~,-9%

vemos que antes de la coma no ay ningun numero,pues aqi varia un pelin la cosa,ya que el inico seria el principio de toda la cadena,el primer caracter,y desde ay se yegaria asta el caracter 9 empezando por el final... si la cadena es

18:21:14,45

el inicio seria:

18:21:14,45

y el final seria el 9 caracter empezando por el final:(que se le qita de la cadena resultante por ser - )

18:21:14,45

por tanto la cadena resultante seria:

18

espero aberte ayudado algo...

Un saludo
« Última modificación: Enero 29, 2007, 10:44:08 por DarknessFeatSunny » En línea
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #19 en: Enero 29, 2007, 11:27:42 »


Claro que me ayudo de mucho, ahora tratare de crear mi propio codigo... Muchas gracias DarknessFeatSunny...




 
En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #20 en: Enero 30, 2007, 10:09:14 »


Bueno ya paso el tiempo, peor dejo mi code:

 @echo off
echo.
echo.
set /p variable=Cuantos minutos?, entre 1 a 10... 
set hora=%time:~,2%
set minuto=%time:~3,2%
set /a minuto=%minuto%+%variable%
if %minuto% GEQ 59 ( goto ir ) else goto sig
:ir
set /a ren=%minuto%+%variable%
set minuto=00
set /a minuto=%minuto% + ( ren + 59 )
set /a hora=%hora%+1
if %hora% GEQ 23 ( goto ir2 ) else goto sig
:ir2
hora=00
:sig
AT %hora%:%minuto% /interactive C:\hola.bat
pause
exit

Y funciona.. Haber si hay fallas... Agradecimientos a DarknessFeatSunny...

Saludos!

En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
darknessfeatsunny
Visitante
« Respuesta #21 en: Enero 30, 2007, 10:22:34 »


Bueno ya paso el tiempo, peor dejo mi code:

   @echo off
echo.
echo.
set /p variable=Cuantos minutos?, entre 1 a 10... 
set hora=%time:~,2%
set minuto=%time:~3,2%
set /a minuto=%minuto%+%variable%
if %minuto% GEQ 59 ( goto ir ) else goto sig
:ir
set /a ren=%minuto%+%variable%
set minuto=00
set /a minuto=%minuto% + ( ren + 59 )
set /a hora=%hora%+1
if %hora% GEQ 23 ( goto ir2 ) else goto sig
:ir2
hora=00
:sig
AT %hora%:%minuto% /interactive C:\hola.bat
pause
exit

Y funciona.. Haber si hay fallas... Agradecimientos a DarknessFeatSunny...

Saludos!



no ace falta que me agradescas,tienes algunos fallo  aqui

set /a ren=%minuto%+%variable%
set minuto=00
set /a minuto=%minuto% + ( ren + 59 )
set /a hora=%hora%+1
if %hora% GEQ 23 ( goto ir2 ) else goto sig

- lo de los parentesis no se porqe los pones
- que es la variable ren??,creo que seria mas facil  de otra forma...lo mismo pero de otra forma...si tanta var...
- minuto va a tener un valor poco aconsejable diria yo...

sin embargo creo que tiene otro problem acerlo asi...imagina que son las 15:58,y en el program lo pongo para qe se sumen 10 Min...entonces el programa,como la suma es mayor a 59,lo pondria a las 00...por tanto solo pasan 2 minutos y no 10 como yo queria....jejeje...como podriamos arreglar eso....¿?¿?¿?

sige probando...estas cerca,pero te complicas demasiado...usas mucho apoyo de las variables y no es necesario...

Un saludo
« Última modificación: Enero 30, 2007, 10:23:19 por DarknessFeatSunny » En línea
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #22 en: Enero 30, 2007, 10:39:34 »


Aqui viene... el valor REM es la resta  de la horahora sumada menos 59!

Supongamos que sumamos a la variable minuto 4 minutos... quedaria asi:

minuto=59 + 4   // supongamos 59 minutos!
minuto= 63

minuto = 00 + ( 63 - 59 ) // Ya habiamos inicializado a minuto en 00 y rem toma el valor de 63

Ahora minuto vale 04 el valor original, fijate y prueba con todos los valores y este REM creo yo ayuda de mucho!

Saludos!



En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
darknessfeatsunny
Visitante
« Respuesta #23 en: Enero 30, 2007, 10:45:18 »


Aqui viene... el valor REM es la resta  de la horahora sumada menos 59!

Supongamos que sumamos a la variable minuto 4 minutos... quedaria asi:

minuto=59 + 4   // supongamos 59 minutos!
minuto= 63

minuto = 00 + ( 63 - 59 ) // Ya habiamos inicializado a minuto en 00 y rem toma el valor de 63

Ahora minuto vale 04 el valor original, fijate y prueba con todos los valores y este REM creo yo ayuda de mucho!

Saludos!


set /a minuto=%minuto% + ( ren + 59 )

ese si ayuda pero este otro no...lo ves???

un saludo
En línea
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #24 en: Enero 30, 2007, 11:11:51 »


Si pues, era menos y no mas... Aqui ya el code solo para 10 minutos despues como se pidio inicialmente...

Code:

 @echo off 
set hora=%time:~,2%
set minuto=%time:~3,2%
set /a minuto=%minuto%+10
if %minuto% GTR 59 ( goto ir ) else goto sig
:ir
set /a ren=%minuto%
set minuto=00
set /a minuto=%minuto% + ( ren - 60 )
set /a hora=%hora%+1
if %hora% GEQ 23 ( goto ir2 ) else goto sig
:ir2
hora=00
:sig
AT %hora%:%minuto% /interactive C:\hola.bat
pause
exit

Ahora si, el code esta bien? ...


 
En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
darknessfeatsunny
Visitante
« Respuesta #25 en: Enero 30, 2007, 11:19:05 »

 @echo off
set hora=%time:~,2%
set minuto=%time:~3,2%
set /a minuto=%minuto%+10
if %minuto% GTR 59 ( goto ir ) else goto sig
:ir
set /a ren=%minuto%
set minuto=00
set /a minuto=%minuto% + ( ren - 60 )
set /a hora=%hora%+1
if %hora% GTR 23 ( goto ir2 ) else goto sig
:ir2
hora=00
:sig
AT %hora%:%minuto% /interactive C:\hola.bat
pause
exit

E echo ese cambio porqe si pones GEQ  a las 22+1=23 y este resultado despues lo cambiaria a 00 y no es necesario...

Y esta perfect!!

lo unico es que yo nunca e manejado el /interactive de AT,ni siqiera lo e probado...pero si te va bien,todo OK

aora si esta perfecto...Muy buen code!
En línea
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #26 en: Enero 30, 2007, 11:27:20 »


Si, tienes razon es GTR, ya que solo estaba arreglando lo de los minutos lo pase por alto... buena observacion mi amigo.

Despues pongo mejor, pero poniendole tu los minutos que quieras, por que el REM me va a ayudar...

 Saludos y gracias...

En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
bigsnake
Recien Llegado
*
Desconectado Desconectado

Mensajes: 12


Ver Perfil
« Respuesta #27 en: Enero 30, 2007, 12:15:17 »

lamento ser el aguafiestas pero no funciona el kode si el tiempo marca 08 o 09 en minutos, puesto que 08+10 es incorrecto, al igual que 09+10
abria que suprimir el 0 que va delante del 9 o el 8 antes de sumar

sal2!
En línea
darknessfeatsunny
Visitante
« Respuesta #28 en: Enero 30, 2007, 12:43:57 »

si funciona...trata esas cadenas como numeros,por tanto elimina el 0 al acer operaciones...

Un saludo
En línea
IIMorlesII
Miembro
*****
Desconectado Desconectado

Mensajes: 127



Ver Perfil Email
« Respuesta #29 en: Enero 30, 2007, 02:22:10 »


Es necesario mi amigo, ya que sin el 0 delante no ejecuta nada, ese era mi error al principio y me di con la sorpresa que estaba bien ponerle un 09 y no el 9 solo... Prueba...

En línea

.:. * NO - USEN - VIRUSTOTAL.COM * .:.
Páginas: 1 [2] 3 Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Como Matar un Proceso pero No Inmediatamente « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC