Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在不等待用户的情况下启动干净的windows关闭?_C++_Console Application_Windows Embedded - Fatal编程技术网

C++ 如何在不等待用户的情况下启动干净的windows关闭?

C++ 如何在不等待用户的情况下启动干净的windows关闭?,c++,console-application,windows-embedded,C++,Console Application,Windows Embedded,我正在尝试让一个嵌入式Windows7应用程序优雅地关闭机器 我试过这个: ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, SHTDN_REASON_MAJOR_OPERATINGSYSTEM | SHTDN_REASON_MINOR_UPGRADE | SHTDN_REASON_FLAG_PLANNED); 这似乎会立即杀死一切(我的应用程序不会干净地退出,它只是死掉) 我曾尝试将EWX_FORCE替换为EWX_

我正在尝试让一个嵌入式Windows7应用程序优雅地关闭机器

我试过这个:

ExitWindowsEx(EWX_POWEROFF | EWX_FORCE,
        SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
        SHTDN_REASON_MINOR_UPGRADE |
        SHTDN_REASON_FLAG_PLANNED);
这似乎会立即杀死一切(我的应用程序不会干净地退出,它只是死掉)

我曾尝试将
EWX_FORCE
替换为
EWX_FORCEIFHUNG
,但这为用户提供了一个对话框,与之相反,该对话框似乎不提供任何超时


有没有办法做到这一点,或者我只需要记录关闭的需要,然后像我的应用程序做的最后一件事那样调用强制关闭?

Hmm。您的链接页面上显示“如果指定了EWX_FORCEIFHUNG值,系统将强制关闭挂起的应用程序,并且不显示对话框。”是的,的确如此,但windows似乎不是这样。您如何知道您的程序没有干净地退出?退出代码是什么?日志突然结束,但这是一个很好的观点;我应该检查退出代码,以再次检查这是否是日志记录问题,而不是关机机制问题。嗯。您的链接页面显示“如果指定了EWX_FORCEIFHUNG值,系统将强制关闭挂起的应用程序,并且不显示对话框。”。确实如此,但windows似乎不是这样做的。您如何知道您的程序没有干净地退出?退出代码是什么?日志突然结束,但这是一个很好的观点;我应该检查退出代码,以再次检查这是否是日志记录而不是关闭机制的问题。