現在のユーザーをログオフするには、どの Python 関数を使用する必要がありますか。Win + Lの組み合わせのように、PCをロックしている例を見つけました
ctypes.windll.user32.LockWorkStation ()
しかし、ログオフする同様の機能が必要です。
これにより、現在のユーザーがログアウトするはずです。
ctypes.windll.user32.ExitWindowsEx(0, 1)
Ctypes は、これらのパラメーターを問題なく unsigned int に変換できるはずです。引数の型に関するエラーがスローされる場合は、次のように 0 と 1 をラップしてみてください。ctypes.c_ulong(0)
ここに文書化されています:ExitWindowsEx
補足: ダイアログを表示せずに (60 秒またはタイマーがあったとしても) アクティブなユーザーをログアウトする習慣を付けると、ユーザーは非常に不満を抱く可能性があります。
試してみてくださいos.system("shutdown -l")。
shutdown -lログオフ用の Windows シェル コマンドです。
これは可能ですが、実際には、SYSTEMユーザーとして実行されるサービスとしてのみ実行できます。実行しているユーザーからログオフしようとすると、スクリプトが終了します(これを実行する方法に関係なく、ユーザー環境が終了すると、現在のタスクが終了します)。
ただし、サービスとして機能するようにバックアップを作成する場合は、win32apiを使用して(pywin32を介して)すべてのユーザーセッションを終了し(これはそれほど良いことではありませんが、ユーザーには問題ないと想定できます)、バックアップを実行できます。ユーザーが再度ログインした場合に発生する問題があります(ユーザーログオンイベントをトラップする必要があります)が、それ以外の場合、これは比較的簡単です。