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

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

Материал из Wiki yaboard
Строка 96: Строка 96:
перед комментарием (или между уже имеющихся блоков функций)        
перед комментарием (или между уже имеющихся блоков функций)        
<pre>#---------------------Конец блока функций для виртуальных пинов blynk-----------------</pre>
<pre>#---------------------Конец блока функций для виртуальных пинов blynk-----------------</pre>
Теперь подробно:<br>
'''@blynk.handle_event('write V4')''' - тут объявляем что функция будет выполнена только после чтения виртуального пина V4 (т.е., чтобы использовать пин V5 - меняем write V4 на write V5).<br>
'''app = "cmd"''' - тут вписываем путь к запускаемому файлу (например "С:\Program Files\AIMP\AIMP.exe") или команду для командной строки (например "cd C:\windows\")<br>
Сохраняем получившийся скрипт.

Версия от 14:21, 14 января 2020

Вступление

В данной статье попробуем создать виртуальный пульт, 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()

Несмотря на страшный вид, все просто:
Тут (вместо ВАШ_ТОКЕН_Blynk) вставляем свой токен, полученный в процессе создания проекта Blynk.

BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен

Чуть ниже комментариями выделен блок, где находятся функции, соответствующие каждому виртуальному пину Blynk.

Например, чтобы добавить функцию открытия командной строки по нажатию на кнопку, привязанную к пину V4, нужно добавить блок функции

@blynk.handle_event('write V4')
def write_virtual_pin_handler(pin, value):
    if str(value) == "['1']":
        app = "cmd" #путь к приложению
        startcmd(app)
        print ('открываю '+app)

перед комментарием (или между уже имеющихся блоков функций)      

#---------------------Конец блока функций для виртуальных пинов blynk-----------------

Теперь подробно:
@blynk.handle_event('write V4') - тут объявляем что функция будет выполнена только после чтения виртуального пина V4 (т.е., чтобы использовать пин V5 - меняем write V4 на write V5).
app = "cmd" - тут вписываем путь к запускаемому файлу (например "С:\Program Files\AIMP\AIMP.exe") или команду для командной строки (например "cd C:\windows\")
Сохраняем получившийся скрипт.