Выход из Windows с использованием Python - PullRequest
2 голосов
/ 10 января 2012

Какую функцию Python я должен использовать для выхода из системы текущего пользователя. Я нашел пример, который блокирует мой компьютер, например, комбинация Win + L

ctypes.windll.user32.LockWorkStation ()

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

Ответы [ 3 ]

1 голос
/ 10 апреля 2012

Это должно привести к выходу текущего пользователя из системы:

ctypes.windll.user32.ExitWindowsEx(0, 1)

Ctypes должен иметь возможность без проблем преобразовывать эти параметры в беззнаковые целые.Если он выдаст ошибку о типах аргументов, попробуйте обернуть 0 и 1 следующим образом: ctypes.c_ulong(0)

Документировано здесь: ExitWindowsEx

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

1 голос
/ 10 января 2012

Попробуйте os.system("shutdown -l").

shutdown -l - это команда оболочки Windows для выхода из системы

0 голосов
/ 10 января 2012

Вы можете сделать это, но только в качестве службы, которая работает как пользователь SYSTEM. Если вы попытаетесь выйти из системы под именем пользователя, с которым вы работаете, ваш скрипт прекратит работу (независимо от того, как вы выполняете это действие, текущая задача будет прервана после завершения работы пользовательской среды).

Однако, если вы напишите свою резервную копию, чтобы функционировать как служба, вы можете использовать win32api (через pywin32 ) для завершения всех пользовательских сессий (это не так уж и приятно, но давайте предположим, что это нормально с ваши пользователи), а затем сделать резервную копию. Существует проблема, которая может возникнуть, если пользователь снова войдет в систему - вам придется перехватывать событие входа пользователя, но в остальном это относительно безболезненно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...