C++ 有没有办法在C++;?

C++ 有没有办法在C++;?,c++,operating-system,cross-platform,C++,Operating System,Cross Platform,我计划开发一个跨平台的应用程序,可能需要在用户的操作系统关闭或重新启动之前进行处理。有没有一种方法可以暂时停止或覆盖C++中的OS关闭/重新启动? 另一方面,此功能将完全由用户通过配置选择,并在默认情况下禁用 我觉得如果不侵入操作系统,这可能是不可能的,但我想我应该征求社区的意见 如果为了实现这一功能,我唯一的选择是对操作系统进行某种程度的“黑客攻击”,那么我将不再继续这一想法 提前谢谢 有没有一种方法可以暂时停止或覆盖C++中的OS关闭/重新启动? 标准C++中没有这样的功能。 P>除非有一

我计划开发一个跨平台的应用程序,可能需要在用户的操作系统关闭或重新启动之前进行处理。有没有一种方法可以暂时停止或覆盖C++中的OS关闭/重新启动? 另一方面,此功能将完全由用户通过配置选择,并在默认情况下禁用

我觉得如果不侵入操作系统,这可能是不可能的,但我想我应该征求社区的意见

如果为了实现这一功能,我唯一的选择是对操作系统进行某种程度的“黑客攻击”,那么我将不再继续这一想法

提前谢谢

有没有一种方法可以暂时停止或覆盖C++中的OS关闭/重新启动? <>标准C++中没有这样的功能。


<> P>除非有一个特定于平台的API来完成,否则你恐怕无法在C++ C++中暂停或重写OS关闭/重新启动操作。但是一个典型的GUI(Windows、Mac等)会通知您的应用程序一个挂起的关闭,这样您就可以进行最后的处理。这是特定于操作系统的,并受其规则的约束。

要覆盖计划/正在进行的关机,您可以:

适用于Windows 7

system("shutdown /a");
对于Linux

system("shutdown -c");

我已经在谷歌上搜索了那篇相关的文章 但似乎很难实现你的目标

我心里想的是;如果可以将程序添加为服务,linux系统将在关闭服务之前关闭该服务


祝你好运

感谢所有的回应和想法

从接收到的响应来看,用C++实现“功能性”和“跨平台”的方法似乎不容易。 提到每个操作系统可能有特定的规则。这是有道理的,而且这些规则也总是会发生变化

其他人建议使用
system()
命令。但是,这可能会给系统带来更多问题和漏洞(可能会有更好的解释和/或示例,因此,如果/当您发现这些问题和漏洞时,请编辑本文)

考虑到以上所有因素,我的建议是将应用程序配置为让用户通过GUI手动执行这些过程(完全由他们决定)、在启动操作系统时执行这些过程,或者两者兼而有之


再次感谢所有回应的人

对于windows,这里有一个复制:您可以创建一个批处理文件,关闭计算机,并使用系统调用它(“mybatchfile.bat”);对于Windows,请参见mac,您可以要求操作系统不要关闭,它将取消操作并询问用户是否强制关闭,在linux中没有这样的事情,它将关闭,无论您喜欢与否(因为通常只有root用户可以命令关闭),在Windows中,将有一个延迟,之后所有内容都将被强制关闭(至少7次,从未尝试过8次或10次)