我正试图找出一种方法来检测用户何时按下CTRL -ALT - DEL或Window + L来锁定PC。
我正在使用的代码是
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If (GetAsyncKeyState(17) AndAlso GetAsyncKeyState(18) AndAlso GetAsyncKeyState(46)) Or ((GetAsyncKeyState(91) Or GetAsyncKeyState(92)) AndAlso GetAsyncKeyState(76)) Then
Msgbox ("Yes")
End If
End Sub
但是,一旦用户按下CTRL-ALT-DEL,Windows安全屏幕就会出现,并且VB检测到按键已被按下的速度太快。
我对如何解决这个问题做了一些研究,发现可以编写一个GINA存根,可以将Windows安全屏幕延迟一段时间说2秒,这足以让VB检测到密钥已经存在按压。
同样通过VB禁用Ctrl-Alt-Del不起作用,因为它对于VB太快而且我不想禁用CTRL-ALT-DEL
有人可以告诉我怎样才能创建GINA存根?
答案 0 :(得分:2)
您可以在此处找到有关GINA的文章:Customizing GINA, Part 1
但是,Windows Vista及以上版本不再使用GINA,因此您必须查看Credential Providers,但我不确定它们是否支持您要执行的操作。
我不确定你需要做什么,但我建议你可以查看SystemEvents.SessionSwitch以防可能有用(不是我自己使用但听起来像是一种可能性)。< / p>