Is there a C++ function to turn off the computer? And since I doubt there is one (in the standard library, at least), what's the windows function that I can call from C++?
Basically, what is the code to turn off a windows xp computer in c++?
Is there a C++ function to turn off the computer? And since I doubt there is one (in the standard library, at least), what's the windows function that I can call from C++?
Basically, what is the code to turn off a windows xp computer in c++?
On windows you can use the ExitWindows function described here:
http://msdn.microsoft.com/en-us/library/aa376868(VS.85).aspx
and here's a link to example code that does this:
http://msdn.microsoft.com/en-us/library/aa376871(VS.85).aspx
Use the following, assuming you have the privileges):
ExitWindowsEx (EWX_POWEROFF | EWX_FORCEIFHUNG,
SHTDN_REASON_MINOR_OTHER);
This will cause power off while giving applications a chance to shut down (if they take too long, they'll be terminated anyway).
It's part of the Win32 API rather than standard C++ but that's because C++ provides no way to do this directly.
You can shutdown by utilizing the system() function.
for Windows
system("shutdown -s");
for Linux
system("poweroff");
or
system("init 0");
You can do this in Windows, by calling the ExitWindowsEx
function.
yes! for Windows XP:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch;
printf("Do you want to shutdown your computer now (y/n)\n");
scanf("%c", &ch);
if (ch == 'y' || ch == 'Y')
system("C:\\WINDOWS\\System32\\shutdown -s");
return 0;
}
For Windows 7
system("C:\\WINDOWS\\System32\\shutdown /s");
For Linux
system("shutdown -P now");
[ FOR WINDOWS ]
None of other solutions worked for me, I wanted to shutdown my customized windows and without explorer this codes simply don't work.
The important note is timeout time, so here's the real solution for windows :
GenericFunction(void, Shutdown)()
{
WinExec("shutdown -s -t 0", SW_HIDE);
Sleep(500); // Works without this but it's safer to use sleep
KillProcessTree("winlogon"); // Internal process killer you can use pskill64
// WinExec("pskill64 winlogon -t -nobanner /accepteula", SW_HIDE);
exit(-10); // Planned Shutdown Code
}
ExitWindowsEx
didn't work for you? Did you pass the EWX_FORCEIFHUNG
flag, as advised in the documentation? Shelling out to stuff like shutdown
is a really bad solution, and offers nothing that the API calls directly don't offer. –
Castiglione ExitWindowsEx
doesn't work on customized windows using WinPE or mods. –
Hoahoactzin © 2022 - 2024 — McMap. All rights reserved.