是否有C ++功能可以关闭电脑?

时间:2009-05-11 02:53:03

标签: c++ windows application-shutdown

是否有关闭计算机的C ++功能?既然我怀疑有一个(至少在标准库中),我可以用C ++调用什么是windows函数?

基本上,在c ++中关闭windows xp计算机的代码是什么?

6 个答案:

答案 0 :(得分:20)

在Windows上,您可以使用此处描述的ExitWindows函数:

http://msdn.microsoft.com/en-us/library/aa376868(VS.85).aspx

这里有一个指向示例代码的链接:

http://msdn.microsoft.com/en-us/library/aa376871(VS.85).aspx

答案 1 :(得分:5)

假设您拥有权限,请使用以下命令:

ExitWindowsEx (EWX_POWEROFF | EWX_FORCEIFHUNG,
    SHTDN_REASON_MINOR_OTHER);

这会导致电源关闭,同时让应用程序有机会关闭(如果它们需要太长时间,它们将被终止)。

它是Win32 API的一部分,而不是标准的C ++,但这是因为C ++无法直接执行此操作。

答案 2 :(得分:4)

您可以使用system()函数关闭。

for Windows

system("shutdown -s");

for Linux

system("poweroff");

system("init 0");

答案 3 :(得分:2)

您可以在Windows中通过调用ExitWindowsEx函数来执行此操作。

答案 4 :(得分:0)

是的! 对于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;
}

对于Windows 7

system("C:\\WINDOWS\\System32\\shutdown /s");

对于Linux

system("shutdown -P now");

答案 5 :(得分:0)

[用于Windows]

没有其他解决方案对我有用,我想关闭自定义窗口,并且在没有资源管理器的情况下,此代码根本行不通。

重要说明是超时时间,因此这是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
}