如何确定 Windows 中用户的屏幕是否被锁定?我正在用 Go 编写,但我认为这更多是关于 WinAPI。
目前,我正在使用以下功能:
const DESKTOP_SWITCHDESKTOP = 0x0100
func main() {
for range time.Tick(time.Second) {
fmt.Println("LockDesktop = ", LockDesktop())
}
}
func LockDesktop() bool {
h := winApi.OpenDesktop("Default", 0, false, DESKTOP_SWITCHDESKTOP)
defer winApi.CloseDesktop(h)
if h != 0 {
return !winApi.SwitchDesktop(h)
}
return false
}
这个功能有点作用。例如,当我按
Ctrl+Alt+Del
时,我会在控制台中看到 LockDesktop = true
。但是,如果我使用 Win+L
锁定屏幕,控制台会显示 LockDesktop = false
。仅当我再次按 Ctrl+Alt+Del
(调出密码输入屏幕)时,LockDesktop = true
才会再次开始出现在控制台中(在 UAC 提示期间,也会显示 LockDesktop = true
)。
如何确保即使屏幕锁定(使用
LockDesktop = true
)也能返回Win+L
?