Как выключить компьютер с помощью python
Перейти к содержимому

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

  • автор:

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

Я написал скрипт на Python, который в конечном итоге должен отключить компьютер. Эта строка является частью этого:

os.system("shutdown /p") 

Она делает некоторое отключение, но остается в включенной панели управления Windows (где пользователь может переключать пользователей компьютера). Есть ли способ полностью отключить компьютер? Я пробовал другие методы os.system(«отключение ___») без успеха. Есть ли другой метод, который может помочь? python windows cmd shutdown

Поделиться Источник 02 декабря 2015 в 10:02

11 ответов

import os os.system('shutdown -s') 

Это будет работать для вас.
Поделиться 02 декабря 2015 в 18:55

import os os.system('sudo shutdown now') 

или: если вы хотите немедленно отключиться без запроса пароля sudo , используйте следующее для Ubuntu и аналогичных дистрибутивов:

os.system('systemctl poweroff') 

Поделиться 14 декабря 2016 в 22:31

Используя ctypes , вы можете использовать функцию ExitWindowsEx для отключения компьютера. Описание из MSDN:

Выключает интерактивного пользователя, отключает систему или отключает и перезапускает систему.

Сначала некоторый код:

import ctypes user32 = ctypes.WinDLL('user32') user32.ExitWindowsEx(0x00000008, 0x00000000) 
  • Получите библиотеку ctypes
  • ExitWindowsEx предоставляется user32.dll и должен быть загружен через WinDLL()
  • Вызовите функцию ExitWindowsEx() и передайте необходимые параметры.

Parameters:

Все аргументы являются шестнадцатеричными.

Первый аргумент, который я выбрал:

отключает систему и отключает питание. Система должна поддерживать функцию отключения питания.

Есть много других возможных функций, см. документацию для полного списка.

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

Создание кросс-платформенности:

Это можно объединить с другими методами, чтобы сделать его кросс-платформенным. Например:

import sys if sys.platform == 'win32': import ctypes user32 = ctypes.WinDLL('user32') user32.ExitWindowsEx(0x00000008, 0x00000000) else: import os os.system('sudo shutdown now') 

Это зависимая функция Windows (хотя у Linux/Mac будет эквивалент), но это лучшее решение, чем вызов os.system() , так как пакетный скрипт с названием shutdown.bat не будет конфликтовать с командой (и в то же время вызовет угрозу безопасности).

Кроме того, он не беспокоит пользователей сообщением «Вы собираетесь выйти менее чем за минуту» , как делает shutdown -s , но выполняется без проблем.

В качестве вспомогательного замечания используйте подпроцесс вместо os.system() (см. Разница между subprocess.Popen и os.system )

В качестве побочного замечания: Я создал WinUtils (только для Windows), что немного упрощает это, однако оно должно быть быстрее (и не требует Ctypes), так как оно построено в C.

Example:

import WinUtils WinUtils.Shutdown(WinUtils.SHTDN_REASON_MINOR_OTHER) 

Поделиться 12 июня 2018 в 19:47

Документ Python рекомендует использовать subprocess вместо os.system. Он предназначен для замены старых модулей, таких как os.system и других.

import subprocess subprocess.run(["shutdown", "-s"]) 

А для пользователей Linux -s не требуется, они могут просто использовать

import subprocess subprocess.run(["shutdown"]) 

Поделиться 28 августа 2021 в 08:07

Единственный вариант, который действительно работает для меня без проблем, это:

import os os.system('shutdown /p /f') 

Поделиться 03 февраля 2019 в 05:00

Попробуйте этот фрагмент кода:

import os shutdown = input("Do you wish to shutdown your computer ? (yes / no): ") if shutdown == 'no': exit() else: os.system("shutdown /s /t 1") 

Поделиться 29 мая 2020 в 12:42

Этот код на Python может выполнить действие:

import os os.system('sudo shutdown -h now') 

Поделиться 30 декабря 2018 в 20:57

Вот пример для отключения Windows:

import os os.system("shutdown /s /t 1") 

Вот пример для отключения Linux (по разрешению root):

import os os.system("shutdown now -h") 

Поделиться 30 января 2020 в 07:11

График установки pip

В случае, если вы также хотите запланировать это:

import schedule import time import os when= "20:11" print("The computer will be shutdown at " + when + "") def job(): os.system("shutdown /s /t 1") schedule.every().day.at(when).do(job) while True: schedule.run_pending() time.sleep(1) 

Поделиться 13 мая 2021 в 01:49

Как вы хотите, winapi можно использовать.

import win32api,win32security,winnt win32security.AdjustTokenPrivilege(win32security.OpenProcessHandle(win32api.GetCurrentProcess(),win32security.ADJUST_TOKEN_PRIVILEGE | win32security.TOKEN_QUERY),False,[(win32security.LookupPrivilegeValue(None,winnt.SE_SHUTDOWN_NAME),winnt.SE_PRIVILEGE_ENABLE)]) win32api.InitateSystemShutdown(None,"Text",second,Force_Terminate_Apps_as_boolean,Restart_as_boolean) 

Поделиться 26 июня 2020 в 13:11

В случае с Windows, использование os.system(«shutdown /p») работает, но иногда создает быстро мигающее окно терминала (см. эту точную ситуацию).

В этом случае лучше использовать subprocess с флагом создания процесса:

import subprocess subprocess.Popen(r"C:\Windows\System32\shutdown.exe /p", creationflags=subprocess.CREATE_NO_WINDOW) 

Python-сообщество

[RSS Feed]

  • Начало
  • » GUI
  • » Выключение компьютера по заданному времени

#1 Июнь 21, 2011 21:23:33

sanodin От: Зарегистрирован: 2011-06-16 Сообщения: 515 Репутация: 31 Профиль Отправить e-mail

Выключение компьютера по заданному времени

Слепил скрипт,прописываешь время в скрипте и запускаешь….в заданное время комп выключается
Хотел вывести в окно Tkinter но не могу найти как что бы время можно было в окне вводить а не в скрипте….видел много раз в других прогах как выпадает менюшка и там выбираешь час и минуты…не знаю как так сделать…подскажите…или пример приведите

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter
import time
from os import geteuid,system

curtime = ''
clock = Tkinter.Label()
clock.pack()
strToFind=("01:10:00")

def tick():
global curtime

newtime = time.strftime('%H:%M:%S')
if newtime != curtime:
curtime = newtime
clock.config(text=curtime)
clock.after(200, tick)
line=curtime
if strToFind in line:
system("/usr/bin/shutdown -h now")

tick()
clock.mainloop()

#2 Июнь 22, 2011 09:51:36

sanodin От: Зарегистрирован: 2011-06-16 Сообщения: 515 Репутация: 31 Профиль Отправить e-mail

Выключение компьютера по заданному времени

Надо создать группу shutdown , инструкцией пользовался взятой вроде здесь на форуме:

цель — выключение компьютера, которое по умолчанию не удастся сделать без административных полномочий, нам придется сделать еще несколько телодвижений.

* Создадим скрипт /usr/bin/shutdown, написав в него:
#!/bin/sh
sudo /sbin/shutdown $*

Как видно из текста скрипта — там используется обычный /sbin/shutdown, которому передаются все параметры командной строки, передаваемые нашему /usr/bin/shutdown. А также /sbin/shutdown выполняется с командной sudo, которая позволяет выполнять другие команды от имени администратора системы.
* Создадим группу shutdown
sudo groupadd shutdown
и добавим себя в нее, воспользуясь groupadd/usermod или отредактировав файл /etc/group. Я пользовался последним способом, для этого нужно найти в файле /etc/group строку типа
shutdown:x:1002:
Чтобы добавить себя в эту группу, измените эту запись на вот такую:
shutdown:x:1002:user1
где user1 — это логин вашего пользователя. Если необходимо добавить еще несколько пользователей в эту группу, перечислите их через запятые в той же строке (без пробелов). Цифра 1001 (ИД группы) может у вас быть другой.
В конечном виде у меня эта строка получилась такой:
shutdown:x:1002:skymanphp
* Присвоим этот скрипт группе shutdown:
chgrp shutdown /usr/bin/shutdown
* Установим право на запуск только группе shutdown:
chmod g+x /usr/bin/shutdown
* Чтобы sudo не попросило у нас пароль, добавим в файл /etc/sudoers строчку:
%shutdown ALL= NOPASSWD: /sbin/shutdown
Она значит то, что всем пользователям, входящим в группу shutdown разрешен запуск скрипта /sbin/shutdown с административными полномочиями без ввода пароля.

#3 Июль 15, 2017 11:48:14

Kyrym Зарегистрирован: 2016-12-28 Сообщения: 225 Репутация: 3 Профиль Отправить e-mail

Выключение компьютера по заданному времени

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

from os import system system("/usr/bin/shutdown -h now") 

.
Это для линукса?

Зато прекрасно работает код запуска батника:
файл питона:

import os os.startfile(r'C:\A\Выключение_ПК.txt') 

файл bat:

shutdown.exe -s -t 00

Отредактировано Kyrym (Июль 15, 2017 11:51:29)

Таймер для выключения компьютеров на Python 3

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

Отслеживать
3,189 2 2 золотых знака 23 23 серебряных знака 45 45 бронзовых знаков
задан 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 время в секундах до отключения.

Выключение пк через определенное время

Author24 — интернет-сервис помощи студентам

Всем привет. Только начал изучать питон и решил что по мере поступления ошибок изучать новое.
Захотел себе сделать удобство таким образом: ввожу время в часах и спустя указанное количество времени отключается компьютер, но что-то не выходит.
Код:

1 2 3 4 5 6 7 8 9 10 11
from os import system while True: try: timer = int(input('Через сколько выключить компьютер? ')) except ValueError: print('Ошибка! Введите количество часов.') else: print("Хорошо, компьютер выключится через ",timer,"ч.") offtime = timer*60*60 system('shutdown -s -t ',offtime) break

Подскажите, что я делаю не так?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как прописать в коде открытие программы по клику на .EXE через определенное время?
Здравствуйте, такой вопрос есть файл main.py в нем код такой: import tkinter master =.

Как постить(в определенное время) картинки в паблик через vk_api с циклом for?
Картинки в отдельной папке с проектом(не с вк). Надеюсь, существует способ постить картинки, не.

Как удалить сообщение от Telegram бота (aiorgam) через какое-то определённое время?
Например удалить вот такое сообщение через 24 часа: await bot.send_message(message.from_user.id.

Как в PyQt сделать так, чтобы код выполнился через определенное время?
Всем привет! Как в PyQt использовать таймер? этот код не работает: from PyQt5.QtCore import.

Эксперт Python

4623 / 2043 / 361
Регистрация: 17.03.2012
Сообщений: 10,116
Записей в блоге: 6
А команда system ждёт завершения или нет?
Регистрация: 21.11.2020
Сообщений: 3

ЦитатаСообщение от dondublon Посмотреть сообщение

А команда system ждёт завершения или нет?
Оказалась проблема в том, что систем принимает строчный тип.

1 2 3 4 5 6 7 8 9 10 11 12
from os import system while True: try: timer = int(input('Через сколько выключить компьютер? ')) except ValueError: print('Ошибка! Введите количество часов.') else: print("Хорошо, компьютер выключится через ",timer,"ч.") timer = timer*60*60 offtime = str(timer) system('shutdown -s -t '+offtime) b

Оставлю тут, вдруг кому поможет.
Регистрация: 31.05.2022
Сообщений: 1
У меня вот так заработало

1 2 3 4 5 6 7 8 9 10 11
from os import system while True: try: timer = int(input('Через сколько часов выключить компьютер? ')) except ValueError: print('Ошибка! Введите количество часов.') else: print("Хорошо, компьютер выключится через ",timer,"ч.") offtime = timer*60*60 system(f'shutdown -t ') break

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Выключение службы через определенное время
Нужно, чтобы после получения широковещательного сообщения о новом СМС запускалась служба ровно на.

Выключение компа в определённое время
Подскажите как сделать такую опцию что бы можно было поставить время и комп сам выключился? вот.

Выключение комьютера в определенное время
Win 7 ultimate доброго дня. Дома встал вопрос про ограничение пользования компьютером для младшего.

Выключение компьютера в определенное время.
Всем доброго дня! Дело у меня такое: в форме есть 2 комбобокса, 1 - часовой (00ч. ,01ч. 24ч.) и.

Выключение двигателя через определенное количество оборотов
PIC 16f877. Двигатель с датчиком кол-ва оборотов. Выключить двигатель через 2 оборота. Помогите.

Как проходить через цикл через определенное время
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;.

После блокировки экрана через некоторое время выключение
У меня телефон на android, если поставить его на блокировку, экран потухнет, если тут же снять, всё.

Или воспользуйтесь поиском по форуму:

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

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