Is it possible to abort computer shutdown from windows service?
Asked
Active
Viewed 1,624 times
1
-
5Nice! Let me add another entry in my Big List of Annoying Things Programs Do. – Apr 28 '10 at 12:46
-
Duplicate: http://stackoverflow.com/questions/589986/how-to-abort-shutdown-in-windows-xpvista-programatically – Oliver Apr 28 '10 at 12:46
-
This is not a duplicate to the question you posted. That question talks about desktop application getting a window message about a shutdown which allows for aborting. A service won't get that window message because it doesn't have a window. – Allon Guralnek Apr 28 '10 at 13:35
-
You can probably abort it in a similar way to notepad blocking windows from shutting down, when it always says "Do you wish to save changes?" and then windows has a fit trying to kill it, and if you press cancel, it's aborted! – NibblyPig Apr 28 '10 at 14:05
-
Will - I can think of several *legitimate* reasons for a windows service to do this. One would be a "watchdog" service that stops shutdowns from occuring except if they're initiated by itself, a fantastic safety net for production servers.. If someone accidentally clicks "Restart Now" in an installer prompt, having a service inhibit the shutdown would have definite value. – Rob Aug 13 '10 at 08:28
2 Answers
0
Yes. You can call shutdown /a using Process.Start
static void Main(string[] args)
{
Process p = new Process();
p.StartInfo.FileName = "shutdown";
p.StartInfo.Arguments = "/r";
p.Start();
Thread.Sleep(5000);
p.StartInfo.Arguments = "/a";
p.Start();
}
The above code tells the computer to shutdown and restart, waits 5 seconds, then aborts it.

NibblyPig
- 51,118
- 72
- 200
- 356
-
1`shutdown /a` only works for shutdowns that have a time-out period. If a user clicks Start >> Shut Down, `shutdown /a` won't abort it. – Allon Guralnek Apr 28 '10 at 13:29
-
Will anything abort it? And even if it does, chances are half your processes have ended anyway, it's probably not a good idea to abort it at that stage. – NibblyPig Apr 28 '10 at 13:50
0
AbortSystemShutdown
I've added a sample to my answer at the similar question here
How cancel shutdown from a windows service C#

Community
- 1
- 1

Hans Olsson
- 54,199
- 15
- 94
- 116
-
1This will not work for the same reason SLC's answer won't work - AbortSystemShutdown will only succeed when called "During the shutdown time-out period" [MSDN quote]. When a user initiates a shut down, there is no time-out period. – Allon Guralnek Apr 28 '10 at 13:39