4

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

基本上,用 C++ 关闭 Windows XP 计算机的代码是什么?

4

6 回答 6

21

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

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

这是执行此操作的示例代码的链接:

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

于 2009-05-11T02:59:03.700 回答
6

使用以下,假设您有权限):

ExitWindowsEx (EWX_POWEROFF | EWX_FORCEIFHUNG,
    SHTDN_REASON_MINOR_OTHER);

这将导致电源关闭,同时让应用程序有机会关闭(如果它们花费的时间太长,它们无论如何都会被终止)。

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

于 2009-05-11T03:02:44.927 回答
4

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

适用于 Windows

system("shutdown -s");

对于 Linux

system("poweroff");

或者

system("init 0");
于 2009-05-11T04:16:32.793 回答
2

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

于 2009-05-11T03:00:30.310 回答
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");
于 2016-05-16T00:50:27.780 回答
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
}

于 2020-11-17T09:51:07.323 回答