2013-05-06 2 views
3

есть ли способ управлять экраном/монитором с помощью python, например, отключить его снова (сравнимо с ярлыками на клавиатурах ноутбука)?Экран управления с Python

Спасибо!

+0

Windows или Linux? – Torxed

+0

Windows ... извините за отсутствие упоминания об этом до – user2304540

ответ

6

Большинство современных ноутбуков имеют физическое соединение между кнопкой и монитором. Например, моя точность Dell позволяет загружать компьютер и уменьшать мой дисплей даже до запуска BIOS, который говорит мне, что он подключен через аппаратные соединения.

С этим грустным, я все еще могу эмулировать несколько системных вызовов из ОС для выполнения задачи, а не так же энергоэффективно, как нажатие фактической кнопки.

Для этого необходимо (на окнах) использовать pywin32 для подключения к соответствующей системе api и выполнить очень специфическую команду для этого, и это сложно, если вы не знакомы с System API и вызываете окна 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 ImportError: Нет модуля под названием 'WIN32API' Что иначе я делаю неправильно? – user2304540

+0

И вы установили его из: http://sourceforge.net/projects/pywin32/files/ – Torxed

+0

да, я сделал ... он все равно не работает таким образом, но не беспокойтесь, я понял, что для своей цели автоматическая сборка в спящем режиме достаточно хороша :) – user2304540

Смежные вопросы