Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Запись времени при выключении пк

Kl1meNT Профи (524), открыт 3 недели назад
Мне нужно чтобы записывалось время выключения пк и можно было взять это время в питоне для кода. Как можно это сделать?
2 ответа
FlooMeer Знаток (264) 3 недели назад
Не существует единого кроссплатформенного способа напрямую получить доступ к времени выключения ПК из скрипта Python. Метод во многом зависит от вашей операционной системы. Вот несколько способов для Windows :

Самый надёжный способ в Windows — использовать утилиту командной строки Windows Management Instrumentation (WMIC) через модуль subprocess в Python. Это позволяет запрашивать журналы событий системы.

import subprocess
import datetime

def get_last_shutdown_time():
"""Retrieves the last shutdown time from Windows event logs."""
try:
cmd = ['wmic', 'computersystem', 'get', 'LastShutdownTime']
proc = subprocess.run (cmd, capture_output=True, text=True, check=True)
output = proc.stdout
lines = output.splitlines()
#Find the line with the shutdown time (skip the header)
time_str = lines[1].strip()
if time_str: #Check if there's actually a time (it might be empty for a fresh boot)
#Convert from YYYYMMDDHHMMSS.MMMMMM+XXX to datetime object
time_str = time_str.replace('+000', '') #remove timezone info if present
time_obj = datetime.datetime.strptime(time_str, '%Y%m%d%H%M%S.%f')
return time_obj
else:
return None # Handle case where no shutdown time is found

except subprocess.CalledProcessError as e:
print(f"Error retrieving shutdown time: {e}")
return None
except ValueError as e:
print(f"Error parsing shutdown time: {e}")
return None

last_shutdown = get_last_shutdown_time()
if last_shutdown:
print(f"Last shutdown time: {last_shutdown}")
else:
print("Could not retrieve the last shutdown time.")
Юрий Семыкин Искусственный Интеллект (207979) 3 недели назад
Настроить (и использовать) log-файл. (Журналы событий в Windows — это файлы на диске. Они хранятся в папках C:\Windows\System32\winevt\Logs и C:\Windows\System32\LogFiles) Это простые текстовые файлы, которые можно прочитать любой программой.
Можно и свою программку написать для записи в файл момента времени и оформить её запуск через диспетчер задач на событие выключения.
Похожие вопросы