2017-02-01 13 views
0

現在のユーザーが自分のPCをロックした場合に自動チェックする方法はありますか? (通常Win+Lによって活性化される)。私が見る1つのハッキーな方法は、何とかすべてのキーの組み合わせをキャッチしていますが、その後、ユーザーが返されたことを知る方法が問題です。Windowsの画面がロックされていることを確認してください

多分、PythonやWindows端末からアクセスできるフラグがありますか?

編集:私はここからのコードを試してみました:Detect when computer is unlocked Windows

画面がロックされているときには、検出したが、それがアンロックされますないとき、それは書き込み続け無期限「画面がまだロックされています」。それでは、何が問題なのでしょうか?私はPython 3.4、64ビットWin7を持っています。

EDIT2:実際にはresultは私にとってはロックされていなくても常に0であるため、実際には何も検出されません。

import ctypes 

user32 = ctypes.windll.User32 
OpenDesktop = user32.OpenDesktopA 
SwitchDesktop = user32.SwitchDesktop 
DESKTOP_SWITCHDESKTOP = 0x0100 

hDesktop = OpenDesktop ("default", 0, False, DESKTOP_SWITCHDESKTOP) 
result = SwitchDesktop (hDesktop) 

print(result) 
+2

[コンピュータのロックが解除されたときに検出する](http://stackoverflow.com/questions/26599462/detect-when-computer-is-unlocked- windows) – asongtoruin

+0

私は試して、それは部分的にしか動作しません。 – Nik

+1

このコードはPython 3では動作しません。なぜならあなたは[W] ide-character APIの 'OpenDesktopW(OpenDesktopW) 'の代わりに(すべて廃止され、避けがたく避けられる)[A] NSI API' OpenDesktopA'にユニコードを渡しているからです。 '。 'restype'と' argtypes'も設定していないので、Pythonを簡単にクラッシュさせる可能性があります。それはエラーを処理していません。それはハンドルを漏らしている。現在の入力デスクトップを副作用として修正する可能性があります。これは 'ctypes.WinDLL'の代わりにライブラリ間の競合に脆弱な' ctypes.windll'を使用しており、スレッドの最後のエラー値を保護する 'use_last_error = True'も使用していません。 – eryksun

答えて

-2

オープンコンプMGMT、オープンリモートコンソール、入力されたコンピュータ名たら、リモートコンソールチェックセキュリティログに接続

注:あなたがにあなたをできるように、お好みのログファイルを受信するために、ベースのコンピュータを設定することができますユーザーがログオン/ログオフ/ロック/アンロックを自動的に確認する

関連する問題