Программа на Python для управления компьютером / PyAutoGui

Питон славиться наличием большого количества очень крутых библиотек. В статье мы рассмотрим работу с библиотекой PyAutoGui, которая позволяет манипулировать компьютером.
Первое что необходимо сделать — это установить всё необходимое. Нам потребуется установить Python с официального сайта , а также скачать IDE, можно использовать PyCharm и далее создать внутри него новый проект.
Установка библиотеки
Теперь необходимо выполнить установку всех библиотек. Если вы работаете на Windows, то вам повезло и все что нужно — команду pip install pyautogui.
Если же вы работаете на Mac OS, то лучше вначале выполнить установку pip install pyobjc, сразу же за ней выполнить установку pip install pyobjc-core и только потом выполнить установку pip install pyautogui.
Работа с библиотекой
Используя библиотеку вы можете работать с мышью: вводить ею, нажимать, перетаскивать и так далее, а также можете работать с клавиатурой: вводить текст, нажимать на клавиши, выполнять нажатие на связку команд.
Некоторые из команд представлены ниже вместе с описанием:
import pyautogui as pg # Получение позиции мыши и вывод в консоль print(pg.position()) # Передвижение мыши pg.move(50, 50, duration=0.5) pg.moveTo(150, 200, 0.5) # Передвигаем к точке относительно экрана # Нажатие мышкой по определенной точке pg.click(769, 101) pg.doubleclick(769, 101) # двойное нажатие pg.rightclick(769, 101) # нажатие правой кнопкной мыши pg.leftclick(769, 101) # нажатие левой кнопкной мыши # Ввод текста pg.typewrite("itproger.com") # Выполнения нажатия на клавишу pg.typewrite(["enter"]) # Выполнения нажатия на сочетание клавиш pg.hotkey("winleft") pg.hotkey("winleft", "up") pg.hotkey("ctrl", "t") # Вызов различных всплывающих окон pg.alert("Окно с информацией", "Название окна", button="Текст на кнопке") age = pg.prompt("Укажите возраст: ", "Название окна") print(age) pg.confirm("Вам больше 18?", "Название окна", ("Да, точно", "Нет")) pg.password("Введите пароль", "Название окна") # Создание скриншота pg.screenshot("yourPic.png") # Мини программа website = pg.prompt("Введите название сайта:", "Веб сайт", "https://") pg.click(769, 101) pg.typewrite(website) pg.typewrite(["enter"]) pg.screenshot("yourPic.png")
Видео на эту тему
Также вы можете просмотреть детальное видео по работе с библиотекой:
Дополнительный курс
На нашем сайте также есть углубленный курс по изучению языка Питон . В ходе огромной программы вы изучите не только язык Питон, но также научитесь создавать веб сайты за счёт веб технологий и фреймворка Джанго. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Питон, создавать на нём полноценные ПК приложения на основе библиотеки Kivy, а также создавать веб сайты на основе библиотеки Джанго.
Больше интересных новостей

Топ-10 сайтов, построенных с помощью Node.Js

5 инструментов на основе искусственного интеллекта от Google

Автоматизация контекстной рекламы: обзор 7 сервисов

7 языков, на которых можно писать в Unity
Комментарии (1)
Крипи 22 октября 2022 в 09:41
Как выключить пк с помощью python?
Вы можете выключить компьютер с помощью Python, используя стандартную библиотеку `os`. Однако обратите внимание, что для выполнения этой операции вам может потребоваться права администратора (root или аналогичные в зависимости от вашей операционной системы).
Вот пример кода для выключения компьютера с использованием Python в PyCharm:
import os
# Проверяем операционную систему и выполняем соответствующую команду выключения
if os.name == 'posix': # Для Unix/Linux
os.system('shutdown -h now')
elif os.name == 'nt': # Для Windows
os.system('shutdown /s /t 0')
else:
print("Данная операционная система не поддерживается")
Этот код определяет операционную систему и выполняет соответствующую команду для выключения. Важно помнить, что для выполнения этой операции могут потребоваться права администратора, и код должен быть запущен с соответствующими привилегиями.
Пожалуйста, будьте осторожны при использовании этого кода, так как неправильное выключение компьютера может вызвать потерю данных.
import os
os.system("shutdown /s /t 0")
Таймер для выключения компьютеров на Python 3
Нужен простой скрипт для выключения компьютеров, чтобы когда компьютер включался он проверял время и начал отсчет до конкретного времени и отключился.
Отслеживать
3,169 2 2 золотых знака 22 22 серебряных знака 44 44 бронзовых знака
задан 21 июн 2018 в 9:26
1 1 1 серебряный знак 1 1 бронзовый знак
Зачем для этого Python? Хватит написать bat’ник в пару строк и запихать в автозапуск.
21 июн 2018 в 9:36
наверно можно и на powershell это организовать .
21 июн 2018 в 10:00
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Например это можно сделать бесконечным циклом, который будет проверять текущее время с желаемым
import os import time def shutdown(offPC=19): while time.gmtime().tm_hour < offPC: time.sleep(60) # ожидание 1 минуту os.system("shutdown -s")
Также можно попробовать после включения запускать скрипт, вычислять время в секундах до желаемого времени отключения и формировать такую запись(отложенное выключение):
os.system("shutdown -s -t xx")
Где XX время в секундах до отключения.
выключить комп через терминал(shutdown) без sudo. как ?
приветствую. пишу для себя программку для выключения/перезагрузки системы по таймеру(аналог EasyShutdown под linux), ребутить систему решил через библиотеку subprocess(python) которая запускает скрипты bash в python'e, но не знаю как сделать, что бы можно было перезагрузить машину без su/sudo.
barysevich
27.09.14 20:07:16 MSK
Можно через dbus и ConsoleKit
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Hjorn ★
( 27.09.14 20:09:47 MSK )
Ответ на: комментарий от Hjorn 27.09.14 20:09:47 MSK

Проще через судов, а если серьёзно то добавить пользователя в группу, не помню какую так как нет возможности проверить
CHIPOK ★★★
( 27.09.14 20:13:41 MSK )
Ответ на: комментарий от CHIPOK 27.09.14 20:13:41 MSK
этот вариант не катит, надо что бы программа запускалась «с коробки» на разных машинах, а не только у меня.
barysevich
( 27.09.14 20:35:34 MSK ) автор топика
Ответ на: комментарий от Hjorn 27.09.14 20:09:47 MSK
спасибо, буду пробовать, хотя не до конца понимаю что это за кусок кода.
barysevich
( 27.09.14 20:37:34 MSK ) автор топика
Ответ на: комментарий от barysevich 27.09.14 20:35:34 MSK
зафига тебе выключать чужие машины
anonymous
( 27.09.14 20:37:36 MSK )
Ответ на: комментарий от anonymous 27.09.14 20:37:36 MSK
нее, ты не так понял 🙂 просто что бы программка работала на разных компьютерах(под разными учетными записями), а не только у меня(потому-что я прописал права доступа)
barysevich
( 27.09.14 20:38:50 MSK ) автор топика
Ответ на: комментарий от barysevich 27.09.14 20:37:34 MSK
ConsoleKit - это такой демон, обслуживащий пользовательские сессии. Им можно управлять через dbus. Только вот его вроде выпиливают сейчас повсюду. Если у тебя systemd, то фокус не прокатит. Может заглянут знатоки и подскажут, как это сделать через logind.
Hjorn ★
( 27.09.14 20:53:36 MSK )
Ответ на: комментарий от CHIPOK 27.09.14 20:13:41 MSK
А пароль кто будет вводить?
Hjorn ★
( 27.09.14 20:54:50 MSK )
Ответ на: комментарий от CHIPOK 27.09.14 20:13:41 MSK

reprimand ★★★★★
( 27.09.14 20:59:27 MSK )

которая запускает скрипты bash в python'e
может сразу на баше написать?
snaf ★★★★★
( 27.09.14 20:59:43 MSK )
Ответ на: комментарий от snaf 27.09.14 20:59:43 MSK
да, прочитал о ConsoleKit так там в разных версиях может по разному себя вести, bash не катит, т.к. это будет аплет для unity с менюшками на Gtk, даже не знаю как быть, хотелось бы универсальность программки, что бы под разными версиями запускался системы/пакетов.
barysevich
( 27.09.14 21:10:56 MSK ) автор топика

Вроде бы с правами надо разбираться через polkit.
risenshnobel ★★★
( 28.09.14 00:08:25 MSK )
Ответ на: комментарий от Hjorn 27.09.14 20:54:50 MSK

:NOPASSWD - настраивается в /etc/sudoers.
LongLiveUbuntu ★★★★★
( 28.09.14 00:17:41 MSK )
Ответ на: комментарий от LongLiveUbuntu 28.09.14 00:17:41 MSK
Стрёмно как-то давать беспарольный sudo даже на одну команду. Хотя может это паранойя. Но всё равно ТСу это не подходит.
Hjorn ★
( 28.09.14 00:38:20 MSK )

если ты делаешь утилиту для других людей, утилиту (работающую «из коробки») для которой нужны повышенные привелегии, такие как «вылючение компьютера» или «стереть все файлы из /home/» (шутка) — то просто укажи в документации к утилите это требование.
. мол — «запускайте от root или через sudo».
второй вариант: раздели свою утилиту на две слабосвязанные части. одна часть это сервисный-юнит (запускаемый через systemd и висящий в системе постоянно), а вторая часть это клиентская часть. клиентская часть — будет связываться со своей серверной частью через dBus, например.
кстати, во втором варианте — я разумеется вижу угрозу безопасности (так как кроме именно твоей программы — связаться с серверной частью сможет также и программа злоумышленника, которая не имеет повышенных полномочий).
user_id_68054 ★★★★★
( 28.09.14 00:56:47 MSK )
Последнее исправление: user_id_68054 28.09.14 00:58:47 MSK (всего исправлений: 2)
Ответ на: комментарий от barysevich 27.09.14 20:37:34 MSK
спасибо, буду пробовать, хотя не до конца понимаю что это за кусок кода.
Тогда уж не вызывать bash из python только для того, чтобы дернуть dbus-send, а использовать dbus-python.
dexpl ★★★★★
( 28.09.14 03:17:44 MSK )
Ответ на: комментарий от Hjorn 27.09.14 20:53:36 MSK

Если systemd, то всё просто
poweroff или systemctl poweroff . По дефолту разрешения таковы, что единственный активный пользователь сможет вырубить машину без получения прав суперпользователя.
intelfx ★★★★★
( 28.09.14 03:36:03 MSK )
Последнее исправление: intelfx 28.09.14 03:38:01 MSK (всего исправлений: 3)
Ответ на: комментарий от user_id_68054 28.09.14 00:56:47 MSK

В случае с systemd такой демон уже написали и называется он logind 🙂