2013-05-06 128 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