背景
我目前正在教自己的python,我认为这将是一个非常酷的项目,有一个“控制中心”,我可以closures,重新启动,并注销我的电脑。 我也想使用subprocess模块,因为我听说导入OS模块已经过时了。
当前代码
def shutdown(self): import subprocess subprocess.call(["shutdown", "-f", "-s", "-t", "60"])
题
我真正问的是,有没有办法(使用subprocess模块)注销并重新启动我的电脑?
技术规格
Python 2.7.3
Windows 7,32位
重启:
shutdown /r
要注销:
shutdown /l
最终的代码块(按要求):
注销:
def shutdown(self): import subprocess subprocess.call(["shutdown", "-f", "-s", "-t", "60"])
重新开始:
def shutdown(self): import subprocess subprocess.call(["shutdown", "-f", "-r", "-t", "60"])
首先你必须:
import subprocess
关闭您的Windows PC:
subprocess.call(["shutdown", "/s"])
重新启动你的Windows PC
subprocess.call(["shutdown", "/r"])
要注销您的Windows PC:
subprocess.call(["shutdown", "/l "])
900秒后关闭Windows PC:
subprocess.call(["shutdown", "/r", "/s", "900"])
要中止关闭,因为没有很好的理由关闭你的电脑与python脚本,你只是复制粘贴代码从stackoverflow:
subprocess.call(["shutdown", "/a "])
我只在Python 3.5中试过这些函数调用。 首先,我不认为这已经改变了自Python 2.7以来,第二个:这是2016年,所以我想你已经做了转换,因为问这个问题。
如果你不能shutdown
以某种方式工作,你可以随时调用它从USER库调用的函数。 你可以通过ctypes
或win32api
来做到这一点,但你也可以这样做:
subprocess.call(['rundll32', 'user.exe,ExitWindowsExec')
或者你可以调用开始菜单使用的更高级别的shell函数:
subprocess.call(['rundll32', 'shell32.dll,SHExitWindowsEx 2')
(请参阅有关这些功能的MSDN文档。)
我认为这可能是最糟糕的做法。 如果你想运行一个命令,运行shutdown
; 如果你想使用API,请使用win32api
。 但是,如果你有一个奇怪的搞砸系统, shutdown /r
只是不起作用,这是一个选项。