2013-02-08 44 views
5

背景如何製作可以註銷,關機和重新啓動計算機的python腳本?

目前我在自學蟒蛇的過程中,我認爲這將是一個非常酷的項目有一個排序的「控制中心」中,我可以關機,重啓和日誌關閉我的電腦。我也想使用子進程模塊,因爲我聽說導入OS模塊已過時。

目前代碼

def shutdown(self): 
    import subprocess 
    subprocess.call(["shutdown", "-f", "-s", "-t", "60"]) 

問題

什麼我真的問的是,有一種方法(使用子模塊)來的註銷和重新啓動我的電腦?

技術規格

的Python 2.7.3

Windows 7中,32位

+0

-r或許重啓? –

+0

感謝您的建議,但我試過了,問題是 - 計算機無法找到文件「重新啓動」,選項(-f,-s,-t)在這方面並不重要。 – xxmbabanexx

+0

我認爲開關應該是'/ f','/ s'等。 – Blender

回答

6

要重新啓動:

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"]) 
+2

你可以添加最後的代碼塊嗎? – GLHF

+0

什麼是最終代碼塊?我不明白。 –

+0

@ben_frankly最終代碼塊_in python_。 – user1712447

2

如果你不能得到shutdown以某種方式工作,你總是可以只調用它從USER庫中調用的函數。您可以通過​​或win32api做到這一點,但你也可以只是這樣做:

subprocess.call(['rundll32', 'user.exe,ExitWindowsExec') 

或者你可以調用開始菜單使用更高級別的外殼功能:

subprocess.call(['rundll32', 'shell32.dll,SHExitWindowsEx 2') 

(有關這些功能,請參閱MSDN文檔。)

我認爲這可能是最糟糕的方式。如果要運行命令,請運行shutdown;如果你想使用API​​,請使用win32api。但如果你有一個奇怪的搞砸系統,shutdown /r只是不起作用,這是一個選項。

7

首先,你必須:

import subprocess 

要關閉您的Windows PC:

subprocess.call(["shutdown", "/s"]) 

要重新啓動您的Windows PC

subprocess.call(["shutdown", "/r"]) 

要註銷您的Windows PC:

subprocess.call(["shutdown", "/l "]) 

要關閉您的Windows PC 900秒後:

subprocess.call(["shutdown", "/r", "/s", "900"]) 

要中止關閉是因爲沒有充分的理由關閉了python腳本你的電腦,你只要複製粘貼從計算器代碼:

subprocess.call(["shutdown", "/a "]) 

我只在Python 3.5中試過這些函數調用。首先,我不認爲這已經改變了自python 2.7以來,第二:它是2016年,所以我想你已經做了開關,因爲問這個問題。

相關問題