2013-05-06 220 views
3

有沒有辦法用python控制屏幕/顯示器,例如再次關閉它(與筆記本電腦鍵盤上的快捷按鈕相比)?使用Python控制屏幕

謝謝!

+0

Windows還是Linux? – Torxed 2013-05-06 16:18:12

+0

Windows ...對不起,之前沒有提及它 – user2304540 2013-05-07 20:22:06

回答

6

大多數現代筆記本電腦都有按鈕和顯示器之間的物理連接。 例如,我的戴爾精度我可以啓動電腦,甚至在BIOS啓動之前調暗我的顯示屏,這告訴我,它通過硬件連接進行連線。我可以在操作系統內模擬一些系統調用來執行任務,而不僅僅是像按下實際按鈕一樣節能。

這樣做需要您(在Windows上)使用pywin32連接到相應的系統api並執行一個非常特定的命令來實現,而且如果您不熟悉System API並調用Windows 32功能。

線沿線的東西:

import os, win32com.client 

def runScreensaver(): 
    strComputer = "." 
    objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") 
    objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2") 
    colItems = objSWbemServices.ExecQuery("Select * from Win32_Desktop") 
    for objItem in colItems: 
     if objItem.ScreenSaverExecutable: 
      os.system(objItem.ScreenSaverExecutable + " /start") 
      break 

如果你在的Linux你可以嘗試只需要執行以下的os.system()之一:

+0

我用python 32位的窗口,我下載並安裝pywin32。現在如果我運行你的代碼,我得到一個錯誤:Traceback(最近調用最後一個): 文件「C:/Python33/screensaver.py」,第1行,在我還有什麼要做? 進口操作系統,win32com.client 文件 「C:\ Python33 \ LIB \站點包\ win32com \ __ init__.py」,5號線,在 進口WIN32API,SYS,OS 導入錯誤:沒有模塊名爲 'Win32API的' 什麼否則我做錯了嗎? – user2304540 2013-05-06 16:54:56

+0

而你已經安裝它:http://sourceforge.net/projects/pywin32/files/ – Torxed 2013-05-06 17:01:17

+0

是的,我做了...它仍然不是這樣工作,但不用擔心我意識到,爲我的目的在睡眠模式下自動構建就足夠了:) – user2304540 2013-05-07 20:20:57