【发布时间】:2010-12-02 21:45:36
【问题描述】:
我正在尝试找出一种方法来检测用户何时按下 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 存根吗???
【问题讨论】:
-
对于 VB 来说并不算“太快”。这是一个您无法拦截的特权组合键。
标签: vb.net