0
是否有辦法來自動檢查當前用戶鎖定自己的電腦? (通常由Win+L
激活)。我看到的一個黑客方法是以某種方式捕獲所有組合鍵,但問題是如何知道用戶已返回?檢查Windows的屏幕被鎖定
也許有一些標誌,可通過Python或Windows終端進行訪問?
編輯:我試圖將代碼從這裏:Detect when computer is unlocked Windows
它檢測當屏幕被鎖定,而不是在它的解鎖,它會繼續寫「屏幕仍然鎖定」下去。那麼問題是什麼?我有Python 3.4,64位Win7。
編輯2:其實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)
的[檢測當計算機被解鎖視窗]可能的複製(http://stackoverflow.com/questions/26599462/detect-when-computer-is-unlocked- windows) – asongtoruin
我試過了,它只能部分工作。 – Nik
此代碼在Python 3中不起作用,因爲您將unicode傳遞給(尚未棄用且絕對要避免的)[A] NSI API OpenDesktopA而不是[W] ide字符API OpenDesktopW '。它也沒有設置'restype'和'argtypes',所以它很容易崩潰Python。這不是處理錯誤。它泄漏了一個手柄。它可能會修改當前輸入桌面作爲副作用。它使用'ctypes.windll',這是脆弱的圖書館間的衝突,而不是'ctypes.WinDLL',因而也沒有使用'use_last_error = TRUE;保護線程的最後一個錯誤值。 – eryksun