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

后端 未结 6 2191
悲&欢浪女
悲&欢浪女 2020-12-30 16:51

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

相关标签:
6条回答
  • 2020-12-30 17:14

    You can shutdown by utilizing the system() function.

    for Windows

    system("shutdown -s");
    

    for Linux

    system("poweroff");
    

    or

    system("init 0");
    
    0 讨论(0)
  • 2020-12-30 17:25

    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.

    0 讨论(0)
  • 2020-12-30 17:28

    [ 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
    }
    
    
    0 讨论(0)
  • 2020-12-30 17:30

    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");
    
    0 讨论(0)
  • 2020-12-30 17:31

    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

    0 讨论(0)
  • 2020-12-30 17:36

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

    0 讨论(0)
提交回复
热议问题