Ejecutar un .bat al apagado del equipo.(Gpedit.msc)

Iniciado por flepe, 7 Mayo 2014, 11:32 AM

0 Miembros y 2 Visitantes están viendo este tema.

flepe

Lo hago con el gpedit.msc el problema es que el proceso de apagado lo primero que hace es cerrar las conexiones, mi .bat es para insertar unos datos en el servidor y claro sin conexión no se puede, existe alguna manera de variar la secuencia de apagado para que el .bat sea lo primero que se ejecute.

Mad Antrax

No conozco tal cosa (no digo que no se pueda hacer), pero se me ocurre la siguiente posibilidad:

Crea un BAT que realice las operaciones que desees y al finalizar el proceso llama al "shutdown -s -f -t 0"

Dicho BAT lo dejas en el escritorio con el nombre: APAGAR EQUIPO

Así el usuario solo tendrá que pulsar el BAT, se ejecutará tu función y finalmente se apagará.

Saludos
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

flepe

La estructura del .bat es la siguiente :

start http://192.168.8.74/hora_apagado.php
ping -n 10 192.168.8.74

(Lo del ping es un comodin que he usado para que mientras lo hace le de tiempo a abrir el explorer y ejecutar hora_apagado.php)

La estructura del .php es la siguiente y esta colocado en el servidor:


<?php
$conex = mysql_connect("localhost", "root", "");
mysql_select_db("ala1", $conex);       
$disponibilidad = 1;
 
      
        if($disponibilidad == 1) //si el nombre de usuario no coincide salvaremos los valores de la variable POST y los insertaremos en nuestra tabla usuarios
        {
        $IP  = $_SERVER["REMOTE_ADDR"]."";         // IP de origen
      @$Puerto .= $_SERVER["REMOTE_PORT"]."";       // Puerto de origen. Es innecesario, pero permite validar algunas cosas.
      @$Fechahora .= date("d/m/Y.H:i:s")."";             // Fecha y hora
      @$Pagina .= $_SERVER["REQUEST_URI"]."";         // Página solicitada
      @$Navegador .= $_SERVER["HTTP_USER_AGENT"]."";
      $consulta1 = "INSERT INTO logg (id_log,IP, Puerto,Fechahora,Pagina,Navegador,USER,fecha_apagado,tipo)
      VALUES ('','$IP' ,'$Puerto', '', '$Pagina','$Navegador','',now(),'2')";

      mysql_query($consulta1);
      }
?>      


Por si a alguien le sirve esto en un futuro :)


Ahora mi pregunta para terminar de dejarlo Chapó hay alguna manera de ocultar las intrucciones que aparecen en la ventana del CMD cuando se esta ejecutando dicho .bat

Mad Antrax

No conozco mucho BAT, pero prueba lo siguiente:

@echo off
@start http://192.168.8.74/hora_apagado.php
@ping -n 10 192.168.8.74
shutdown -s -f -t0
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

f7eo

Puedes "ensamblar" el .bat en un executable (.exe) y hay le ocultas la consola. jaja

http://www.f2ko.de/programs.php?lang=en&pid=b2e
Con amor y aguardiente, nada se siente.

daryo

buenas

PedroDJavier

Mira, no uses ping ... usa este comando que es mas preciso para esperar un X tiempo


timeout /t TIEMPOAESPERAR


Y ale!
Un saludo

Zomkar

#7
Cita de: flepe en  7 Mayo 2014, 11:32 AM
Lo hago con el gpedit.msc el problema es que el proceso de apagado lo primero que hace es cerrar las conexiones, mi .bat es para insertar unos datos en el servidor y claro sin conexión no se puede, existe alguna manera de variar la secuencia de apagado para que el .bat sea lo primero que se ejecute.

Idea:

windows cierra sesión primero y después apaga equipo, porque no lo pones en el perfil de usuario y no de maquina?

Idea2:

anular apagado de windows en tu propio bat hasta que acabes, así

Código (dos) [Seleccionar]

@echo off
REM win7
shutdown /a
REM winxp  shutdown -a
REM tu codigo
REM apagas pc


Ah y usando echo off solo se verán algunos detalles minimos en el CMD, pero se ve el CMD, claro..
Si vas a por ellos te llamarán violento.
Si explotas a cientos te verán como un ejemplo.

f7eo

#8
VBScript (.vbs)


set objshell = createobject("wscript.shell")
objshell.run "tu_archivo.bat",vbhide













Con amor y aguardiente, nada se siente.