Foros del Web » Programación para mayores de 30 ;) » .NET »

Controlar el apagado de windows

Estas en el tema de Controlar el apagado de windows en el foro de .NET en Foros del Web. hola estoy desarrollando una aplicacion que me detecta cuando una computadora fue apagada correctamente por el usuario y no por que se fue la luz ...
  #1 (permalink)  
Antiguo 19/05/2010, 19:27
 
Fecha de Ingreso: diciembre-2009
Ubicación: Mérida Yucatán México
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 1
Controlar el apagado de windows

hola estoy desarrollando una aplicacion que me detecta cuando una computadora fue apagada correctamente por el usuario y no por que se fue la luz o sucedió algo, entonces trato de que cuando el usuario le de clic a Inincio>apagar el apagado se cancele, entonces en ese momento mi programa escribe en una base de datos que la computadora se apagó bien y luego el mismo programa inicia el apagado.

he tratado con esto para cancelar el apagado de windows:

Código:
  Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing


      If e.CloseReason.Equals(CloseReason.WindowsShutDown) Then

            Microsoft.VisualBasic.Interaction.Shell("shutdown -a",      AppWinStyle.MinimizedFocus, False - 1)
           

        End If

    End Sub
y tambien he intentado con esto:


Código:
  Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing


        If e.CloseReason = CloseReason.WindowsShutDown Then
            e.Cancel = True


        End If
    End Sub
Pero no cancela nada el equipo se apaga pero avisa que hay aplicaciones corriendo, he probado mi programa en Windows 7 y Windows Xp

siempre me sale el error de que shutdown.exe no se ha iniciado correctamente y de ahi se apaga, si alguien me podria explicar como hacerlo se los agradeceré mucho.

No importa si me ponen un ejemplo en C# o VB.Net
  #2 (permalink)  
Antiguo 20/05/2010, 02:23
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Controlar el apagado de windows

Una pregunta: cuando se apaga el equipo, se llega a ejecutar el evento FormClosing?

Te lo comento porque Windows intenta cerrar las aplicaciones, pero si se resisten lo que termina haciendo es "matarlas" (les envia un signal "kill") y las termina cerrando pero sin pasar por ese evento.

De todas maneras, aquí hay alguien que intentó hacer lo mismo que tú:

http://stackoverflow.com/questions/2...dows-service-c

y le dieron esta solución:

Código:
using System.Runtime.InteropServices;

[DllImport("advapi32.dll", SetLastError=true)]
static extern bool AbortSystemShutdown(string lpMachineName);


if (!AbortSystemShutdown("localhost"))
{
    int err = Marshal.GetLastWin32Error();
}
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: controlar, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:49.