La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2764 - SABER CUANDO LA PC ESTA APAGADA PO PRENDIDA CON VISUAL BASIC
Autor:  Eloy Martín Silva Vásquez
Estoy haciendo un programa en visual basic y en la cual tengo una tabla que la controlo desde el servidor para saber si alguna computadora de los laboratorios esta prendida, al momento de prender la computadora el el grupo inicio tengo un programita que se carga y graba un dato en una tabla de acces si el dato es 1 en el programa del servidor sale un mesaje indicando la pc que esta prendida, ¿como puedo saber cuando esta apagada ya que el dato que necesito que grabe en la tabla es 0 al momento de que se este apagando? ¿hay alguna api para poder hacerlo en windows 98?, es decir al dar en la opcion de apagar el sistema como saber que se presiono el boton de aceptar y grabar el dato que necesito para apagarla o hay otra forma de hacerlo.

tambien quisiera saber si puedo hacer que carge un programa sin necesidad de que este el grupo inicio.
por favor es urgente y gradecere mucho la ayuda

gracias.

  Respuesta:  Rene Berra Lozada
Quizas esto te interesa: hice un programa que controla las PC de un cafe internet, entreo otras cosas hace lo que tu necesitas. si deseas mas detalles contactame.

  Respuesta:  Bruno Forchieri
Para saber si una Pc está apagada o incluso, si está prendida, existe un truquito un poco ingenioso. Tratá de acceder a la misma, por ejemplo, si tenés los discos rígidos compartidos
Dim i as integer
i = freefile
on error goto Apagada
open "\\LAB1\C\Autoexec.bat" for random as #i
on error resume next
close i
´...

Apagada:
´Acá poné el código ya que si hubo un error la máquina está apagada.

Esto lo podés correr cíclicamente sobre todas las máquinas y con un archivo vacío alojado en cada pc. En el ejemplo te puse el autoexec.bat ya que seguro existe en toda pc.

Para correr aplicaciones sin que estén en el grupo de inicio, creáte una entrada de registro en
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\"(acá va tu entrada)
con una clave con el nombre de lo que deba correr.
Ejemplito:
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Pepe",c:\pepe\pepe.exe"

Cualquier cosa, escribíme

  Respuesta:  Daniel Azkona Coya
Hola,

La verdad es que no te he entendido casi nada del mensaje, pero a ver si te sirve este mensaje de sistema: WM_QUERYENDSESSION