El .NET framework es bastante potentillo, alguna que otra vez es necesario recurrir al API de windows, pero normalmente ya hay un wrapper o una función en .NET mejor o peor que vale para lo mismo.
Pues bien, estoy cansado de que cuando Microsoft me envía algún parche a mi ordenador, siempre quiera reiniciar mi máquina. Pues bien, es solo 5 minutos se puede capturar el "evento" del sistema de "Windows Shutdow" y hacer que no se reinicie.
Aquí va esta pequeña aplicación Winforms Visual Basic .NET (por cierto, odio el VB ;)
Sub PreventShutdown()
AddHandler SystemEvents.SessionEnding, AddressOf PreventShutdownHelper
AddHandler SystemEvents.SessionEnding, AddressOf PreventShutdownHelper
End Sub
Sub PreventShutdownHelper(ByVal sender As Object, ByVal args As SessionEndingEventArgs)
If args.Reason = SessionEndReasons.SystemShutdown Then
args.Cancel = True
End If
End Sub