我计划开发一个跨平台的应用程序,可能需要在用户的操作系统关闭或重新启动之前进行处理。有没有办法暂时挂起或覆盖C ++中的OS关闭/重启?
另外,此功能完全由用户通过配置选择,默认情况下禁用。
我觉得如果不侵入操作系统,这可能是不可能的,但我想我会要求社区的想法。
如果我唯一的选择是为了实现这个功能而某种程度上“破解”操作系统,那么我将不会再进一步追求这个想法了。 :)
提前致谢!
答案 0 :(得分:3)
有没有办法在C ++中临时暂停或覆盖OS关闭/重启?
标准C ++中没有这样的功能。
除非有特定于平台的API,否则我恐怕您无法在C ++中暂停或覆盖操作系统关闭/重启操作。
答案 1 :(得分:2)
C ++中没有任何内容可以解决这个问题。但是典型的GUI(Windows,Mac等)会通知您的应用程序挂起关闭,以便您可以进行最终处理。这是操作系统特有的,并受其规则的约束。
答案 2 :(得分:0)
要覆盖计划/进行中的关闭,您可以:
对于Windows 7
system("shutdown /a");
对于Linux
system("shutdown -c");
答案 3 :(得分:0)
我用Google搜索了相关文章how to detect Linux shutdown/reboot 但似乎很难为您的目的实施。
我的想法是什么;如果你可以将程序添加为服务,linux系统将在关闭之前关闭服务。
祝你好运
答案 4 :(得分:0)
感谢所有回复和想法!
根据收到的回复判断,似乎没有“安全”和跨平台的方式使用C ++轻松实现这些功能。
Pete Becker提到每个操作系统可能有特定的规则。这是有道理的,这些规则也总是可以改变。
其他人建议使用system()
命令。但是,这可能会在系统中引入更多问题和漏洞(1) (2)(可能会有更好的解释和/或示例,因此如果/找到它们,请编辑此帖子。)
考虑到上述所有情况,我的建议是将应用程序配置为让用户通过GUI手动执行这些进程(完全由它们完成),在操作系统启动时执行这些进程或两者。
再次感谢所有回复的人!