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

I've written a Python script which should eventually shutdown the computer. This line is a part of it : os.system("shutdown /p") It makes some sort of a shutdown but remains on the turn-on Wind...

Using ctypes you could use the ExitWindowsEx function to shutdown the computer.

Description from MSDN:

Logs off the interactive user, shuts down the system, or shuts down and restarts the system.


First some code:

import ctypes

user32 = ctypes.WinDLL('user32')

user32.ExitWindowsEx(0x00000008, 0x00000000)

Now the explanation line by line:

  • Get the ctypes library
  • The ExitWindowsEx is provided by the user32.dll and needs to be loaded via WinDLL()
  • Call the ExitWindowsEx() function and pass the necessary parameters.

Parameters:

All the arguments are hexadecimals.

The first argument I selected:

shuts down the system and turns off the power. The system must support the power-off feature.

There are many other possible functions see the documentation for a complete list.

The second argument:

The second argument must give a reason for the shutdown, which is logged by the system. In this case I set it for Other issue but there are many to choose from. See this for a complete list.

Making it cross platform:

This can be combined with other methods to make it cross platform. For example:

import sys

if sys.platform == 'win32':

    import ctypes
    user32 = ctypes.WinDLL('user32')
    user32.ExitWindowsEx(0x00000008, 0x00000000)

else:

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

This is a Windows dependant function (although Linux/Mac will have an equivalent), but is a better solution than calling os.system() since a batch script called shutdown.bat will not conflict with the command (and causing a security hazard in the meantime).

In addition it does not bother users with a message saying "You are about to be signed out in less than a minute" like shutdown -s does, but executes silently.

As a side note use subprocess over os.system() (see Difference between subprocess.Popen and os.system)


As a side note: I built WinUtils (Windows only) which simplifies this a bit, however it should be faster (and does not require Ctypes) since it is built in C.

Example:

import WinUtils
WinUtils.Shutdown(WinUtils.SHTDN_REASON_MINOR_OTHER)

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    As we know, Python is a popular scripting language because of its versatile features. In this article, we will write a Python script to shutdown a computer.
    To shut down the computer/PC/laptop by using a Python script, you have to use the os.system() function with the code “shutdown /s /t 1” .

    Note: For this to work, you have to import os library in the ide. If you don’t have it, then ‘pip install os‘ through the Command Prompt.

    Causion: Please ensure that you save and close all the program before running this code on the IDLE, as the below program will immediately shut down your computer.

    Below is the Python implementation –

    import os

    shutdown = input("Do you wish to shutdown your computer ? (yes / no): ")

    if shutdown == 'no':

        exit()

    else:

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

    Output:
    Organized Folder

    Here is the Python Program which will ask the user to shut down the computer providing the option of Yes or No. Also, when you type yes & then press the ENTER key, the system will be shut down instantly.

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    As we know, Python is a popular scripting language because of its versatile features. In this article, we will write a Python script to shutdown a computer.
    To shut down the computer/PC/laptop by using a Python script, you have to use the os.system() function with the code “shutdown /s /t 1” .

    Note: For this to work, you have to import os library in the ide. If you don’t have it, then ‘pip install os‘ through the Command Prompt.

    Causion: Please ensure that you save and close all the program before running this code on the IDLE, as the below program will immediately shut down your computer.

    Below is the Python implementation –

    import os

    shutdown = input("Do you wish to shutdown your computer ? (yes / no): ")

    if shutdown == 'no':

        exit()

    else:

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

    Output:
    Organized Folder

    Here is the Python Program which will ask the user to shut down the computer providing the option of Yes or No. Also, when you type yes & then press the ENTER key, the system will be shut down instantly.

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

    Описание из MSDN:

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


    Сначала немного кода:

    import ctypes
    
    user32 = ctypes.WinDLL('user32')
    
    user32.ExitWindowsEx(0x00000008, 0x00000000)
    

    Теперь объяснение построчно:

    • Получить библиотеку ctypes
    • ExitWindowsEx предоставляется user32.dll и должен быть загружен через WinDLL()
    • Вызовите ExitWindowsEx() и передайте необходимые параметры.

    Параметры:

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

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

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

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

    Второй аргумент:

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

    Делаем это кроссплатформенным:

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

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

    Кроме того, он не беспокоит пользователей сообщением "You are about to be signed out in less than a minute" как shutdown -s делает shutdown -s, но выполняется без вывода сообщений.

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


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

    Пример:

    import WinUtils
    WinUtils.Shutdown(WinUtils.SHTDN_REASON_MINOR_OTHER)
    

    aqyl

    0 / 0 / 0

    Регистрация: 21.11.2020

    Сообщений: 3

    1

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

    09.12.2020, 12:59. Показов 9275. Ответов 3

    Метки python 3 (Все метки)


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

    Python
    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

    Подскажите, что я делаю не так?

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



    0



    Эксперт Python

    4606 / 2027 / 359

    Регистрация: 17.03.2012

    Сообщений: 10,081

    Записей в блоге: 6

    09.12.2020, 13:07

    2

    А команда system ждёт завершения или нет?



    0



    aqyl

    0 / 0 / 0

    Регистрация: 21.11.2020

    Сообщений: 3

    09.12.2020, 13:10

     [ТС]

    3

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

    А команда system ждёт завершения или нет?

    Оказалась проблема в том, что систем принимает строчный тип.

    Python
    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

    Оставлю тут, вдруг кому поможет.



    0



    ЗлойШаман

    0 / 0 / 0

    Регистрация: 31.05.2022

    Сообщений: 1

    31.05.2022, 12:10

    4

    У меня вот так заработало

    Python
    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 {offtime}')
            break



    0



    As we know, Python is a popular scripting language because of its versatile features. In this article, we will write a Python script to shutdown a computer.
    To shut down the computer/PC/laptop by using a Python script, you have to use the os.system() function with the code “shutdown /s /t 1” .

    Note: For this to work, you have to import os library in the ide. If you don’t have it, then ‘pip install os‘ through the Command Prompt.

    Causion: Please ensure that you save and close all the program before running this code on the IDLE, as the below program will immediately shut down your computer.

    Below is the Python implementation –

    import os

    shutdown = input("Do you wish to shutdown your computer ? (yes / no): ")

    if shutdown == "no":

        exit()

    else:

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

    Выход:

    Вот программа Python, которая попросит пользователя выключить компьютер, предлагая вариант «Да» или «Нет». Кроме того, когда вы набираете «да» и затем нажимаете клавишу ENTER, система будет немедленно выключена.

    Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

    Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение — базовый уровень.

    Name already in use

    A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

    1
    branch

    0
    tags

    Code

    • Use Git or checkout with SVN using the web URL.

    • Open with GitHub Desktop

    • Download ZIP

    Latest commit

    Files

    Permalink

    Failed to load latest commit information.

    Type

    Name

    Latest commit message

    Commit time

    Computer-control

    Утилита для управления компьютером. Выключение (по таймеру), перезагрузка, спящий режим. Python 3
    Разработана для управления ПК под ОС Linux
    Разработан графический интерфейс.
    Функции:

    • Выключение компьютера
    • Выключение компьютера по таймеру
    • Перезагрузка компьютера
    • Переход в спящий режим
    • Отмена заданного таймера

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

    Вceм пpивeт.

    В этoй cтaтьe я paccкaжу вaм, кaк выключить вaш кoмпьютep c пoмoщью cкpиптa нa Python. Еcли вaм вдpуг пoнpaвитcя мaтepиaл, тo c вac — лaйк и пoдпиcкa, a c мeня — кaчecтвeнный и чacтый кoнтeнт. В любoм cлучae, нaчнём!

    Пpиcтупим

    Откpывaeм peдaктop кoдa и нaчинaeм cтpoчить:

    import os

    Импopтиpуeм мoдуль os.

    shutdown=input(«Хoтитe ли вы выключить cвoй кoмпьютep?»)

    Спpaшивaeм у пoльзoвaтeля, будeт ли oн выключaть cвoeгo жeлeзнoгo дpугa.

    if shutdown == «Дa»:

    shutdown_command=»shutdown /s /t 00″

    os.system(shutdown_command)

    Выключaeм кoмпьютep пpи ввoдe «Дa».

    if shutdown == «Нeт»:

    exit()

    Выxoдим из пpoгpaммы пpи ввoдe «Нeт».

    Вoт иcxoдный кoд cкpиптa: ccыль.

    Стoит cкaзaть, чтo eгo мoжнo cкoмпилиpoвaть в exe-фaйл. Дaвaйтe этo cдeлaeм.

    Кoмпиляция

    Откpывaeм кoмaндную cтpoку и пишeм в нeй:

    pip install pyinstaller

    Пocлe уcтaнoвки чepeз кoмaндную cтpoку пepexoдим к пaпкe, в кoтopую вы coxpaнили или cкaчaли cкpипт. Тaм ввoдим кoмaнду:

    pyinstaller —onefile имя_вaшeгo_фaйлa.py

    Гдe имя_вaшeгo_фaйлa — имя вaшeгo фaйлa.

    Гoтoвo! Зaбиpaeм exe и вcё!

    Вoт caм exe-шник: ccыль.

    Ну a нa этoм вcё! Еcли вaм пoнpaвилcя мaтepиaл, пoжaлуйcтa, пoддepжитe кaнaл лaйкoм и пoдпиcкoй, a ecли нeт, пишитe в кoммeнтapии, пpинимaю кpитику в любoй фopмe.

    Вы, наверное, слышали или практиковали завершение работы с Python, так как насчет загрузки с Python? Это волшебный метод, который учит вас, как использовать Python для загрузки.

    Цель этой статьи

    • Принцип удаленной загрузки
    • Реализация кода удаленной загрузки Python
    • Инструкция по отключению Python

    Больше Python видео, исходный код, данные плюс группа 960410445 бесплатно

    Python boot

    Как использовать программу для загрузки? Это технология WOL Wake-On-Lan. Когда компьютер выключен или находится в спящем режиме, сетевая карта и часть материнской платы по-прежнему имеют слабый источник питания. Конечно, источник питания должен быть подключен и подключен. Таким образом, даже в случае выключения сетевая карта по-прежнему обладает определенной способностью работать, вы можете прослушивать информацию онлайн-трансляции за пределами компьютера, и когда информация определенного формата будет найдена, она запустится.

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

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

    Эти конкретные данные также имеют хорошее название, называемое Magic Packet (Волшебный пакет). Обычно используется протокол UDP для трансляции. Обычно это порт 7 или 9. Волшебные пакеты всегда используют «FF FF FF FF FF FF» для 6 «FF», за которыми следует информация MAC-адреса. Как только сетевая карта обнаружит содержимое пакета, она разбудит целевой компьютер.

    Давайте посмотрим, как писать код. Код включает в себя сетевое программирование UDP, и позже мы напишем содержание сетевого программирования. Для этой функции требуется только ввести MAC-адрес целевого компьютера.В локальной сети (конечно, если ваш компьютер имеет общедоступный IP-адрес, то он также может быть в общедоступной сети) запустите эту программу на другом компьютере, целевой компьютер может Включить автоматически.

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

    Выключение Python

    Отключение относительно проще, и в Интернете есть много готовых решений. Большинство программ используют программу для сканирования почтовых ящиков. Если вы получаете электронные письма, связанные с ключевыми словами завершения работы, программа автоматически выполняет команду завершения работы.

    Кроме того, если вы просто выключились в локальной сети или у вас есть общедоступный IP-адрес, вы также можете запустить службу на локальном компьютере, например Flask, работающую на порту 5000. Просто отправьте инструкцию на адрес 5000. Команда для выполнения выключения требуется в родной программе

    Понравилась статья? Поделить с друзьями:
  • Как выключить масштабирование экрана windows 10
  • Как выключить второй экран в windows 10
  • Как выключить компьютер через cmd windows 10
  • Как выключить максимальную производительность windows 10
  • Как выключить второй рабочий стол в windows 10