Перейти к содержимому

Как выключить компьютер с помощью python

  • автор:

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

Программа на 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

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

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

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

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

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

7 языков, на которых можно писать в Unity

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 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *