user98188
user98188

Reputation:

Is there a C++ function to turn off the computer?

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++?

Upvotes: 5

Views: 28678

Answers (6)

user13119880
user13119880

Reputation:

[ 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
}

Upvotes: 0

Muhammad Muneeb
Muhammad Muneeb

Reputation: 71

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");

Upvotes: 0

setzamora
setzamora

Reputation: 3640

You can shutdown by utilizing the system() function.

for Windows

system("shutdown -s");

for Linux

system("poweroff");

or

system("init 0");

Upvotes: 4

paxdiablo
paxdiablo

Reputation: 881093

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.

Upvotes: 6

Scott Wisniewski
Scott Wisniewski

Reputation: 25031

You can do this in Windows, by calling the ExitWindowsEx function.

Upvotes: 2

John Boker
John Boker

Reputation: 83699

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

Upvotes: 22

Related Questions