Перейти к содержанию

Алиса управляет компьютером-3 (Python)

Материал из Wiki yaboard

Вступление

В данной статье попробуем создать виртуальный пульт, UI для управления действиями ПК. В данном примере рассмотрим такой функционал, как запуск приложений, открытие веб-страниц в браузере, выключение ПК и использование "горячих" клавиш. К слову - это не весь функционал, который можно применить, прочитав данную статью. Для тех, кто знаком с языком программирования Python не составит труда расширить предложенный скрипт по своему вкусу. Пользователям же с начальными знаниями будет несложно использовать перечисленные функции под свои нужды с минимальными трудозатратами.

От слова к делу или устанавливаем Python

Для начала нам потребуется скачать и установить среду разработки Python, т.к. это основной инструмент, который будет управлять компьютером.
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь)

  1. Скачать установщик Python по ссылке
  2. Запустить установщик (предполагается установка Python в PATH, дабы не морочиться с запуском скрипта. Если все же вы решили отказаться от установки в PATH, то команда запуска скрипта будет такой: <Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py).
  3. Устанавливаем галочку на "Add Python <версия> to PATH".
  4. Нажимаем "Install Python" и продолжаем установку соглашаясь со всем, что предложит нам установщик.
Устанавливаем Python в PATH

По окончании установки можем проверить работоспособность установив нужные нам в будущем библиотеки. Для этого:

  1. Открываем командную строку (Нажимаем Win+R, вводим cmd, нажимаем Enter)
  2. Водим поочередно следующие команды:

pip install blynklib - библиотека Blynk для Python
pip install pyautogui - библиотека для работы с горячими клавишами

Регистрируемся и собираем пульт в Blynk

Не буду заострять внимание на регистрации в Blynk, т.к. данный процесс уже описан в статье, конкретно здесь. Единственное, что стоит заметить, что в данном случае вовсе неважно, какое устройство вы выберете при создании проекта, тажке как и неважно какой это будет способ подключения. Нам важен только токен и возможность работы с проектом.
После регистрации добавим в наш проект нужное количество кнопок Button. Можно оформить и подписать их по вкусу.

Настраиваем скрипт Python под себя

Загружаем скрипт
Открываем его любым текстовым редактором (мне по вкусу Sublime Text, но вы можете использовать хоть блокнот)))) и видим следующее: import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib) import subprocess #библиотека для запуска параллельных процессов import webbrowser #библиотека для работы с веб import pyautogui #библиотека для эмуляции нажатий клавиш клавиатуры (перед этим в CMD сделать pip install pyautogui) BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен blynk = blynklib.Blynk(BLYNK_AUTH) #функция для запуска отдельным процессом приложений и команд def startcmd(cmd): PIPE = subprocess.PIPE p = subprocess.Popen(cmd, shell = True) p.poll(); #---------------------Начало блока функций для виртуальных пинов blynk----------------- #Пример открытия сайта в браузере @blynk.handle_event('write V0') def write_virtual_pin_handler(pin, value): if str(value) == "['1']": url = "https://dialogs.yandex.ru/store/" #ссылка на сайт webbrowser.open(url) print ('открываю сайт '+url) #Пример запуска блокнота @blynk.handle_event('write V1') def write_virtual_pin_handler(pin, value): if str(value) == "['1']": app = "notepad.exe" #путь к приложению. Например "С:\Program Files\AIMP\AIMP.exe" startcmd(app) print ('открываю '+app) #Пример виртуального нажатия горячих клавиш @blynk.handle_event('write V2') def write_virtual_pin_handler(pin, value): if str(value) == "['1']": pyautogui.hotkey('ctrl','v') #комбинация горячих клавиш print ('вставляю текст из буфера') #Пример ввода команд (например выключение ПК) @blynk.handle_event('write V3') def write_virtual_pin_handler(pin, value): if str(value) == "['1']": comd = "shutdown –s -t 60" #команда для CMD (командная строка Windows) startcmd(comd) print ('Выключаю ПК') #---------------------Конец блока функций для виртуальных пинов blynk----------------- while True: blynk.run()