2010-12-02 3 views
1

사용자가 CTRL-ALT-DEL 또는 Window + L을 눌러 PC를 잠글 때를 감지하는 방법을 찾으려고합니다. .사용자가 CTRL-ALT-DEL 또는 Window + L을 VB.net에서 누를 때를 감지합니다.

내가 사용하는 코드는 즉시 사용자가 Windows 보안 화면이 등장하고 VB가 키를 가지고 있음을 감지 너무 빠른 CTRL-ALT-DEL을 누르면로, 그러나

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 

입니다 되었습니다.

이 문제를 해결하는 방법에 대해 약간의 재검토를했으며 GINA 스텁을 작성하여 Windows 보안 화면을 지연시킬 수 있음을 알아 냈습니다. 잠시 후에 2 초가 지나면 VB에서 키가 있음을 감지 할 수 있습니다. 되었습니다.

또한 VB 너무 빠르고 내가 어떤 사람이 나를 어떻게을 수 GINA를 알려 주시기 바랍니다 수 CTRL-ALT-DEL

을 해제하지 싶습니다 때문에 작동하지 않습니다 VB를 통해 Ctrl 키 + Alt + Del 키를 비활성화 스텁이 만들어 질까 ???

당신은 여기 GINA에 대한 기사 찾을 수
+3

VB에서는 너무 빠르지 않습니다. 요격 할 수없는 특권 키 조합입니다. –

+0

가능한 중복 : http://stackoverflow.com/questions/1346689/how-do-i-trap-windows-key-alttab-ctrlaltdelete-in-c –

답변

2

그러나 Customizing GINA, Part 1

, Windows Vista를 최대 더 이상 Credential Providers보고해야 할 것 있도록 GINA를 사용하지만, 그들은 당신이 원하는 것을 지원하는 경우 잘 모르겠어요 할 것.

정확히 무엇을해야하는지 잘 모르겠지만 유용 할 수도있는 경우에 대비하여 SystemEvents.SessionSwitch을보고 싶을 수도 있습니다 (직접 사용하지는 않지만 가능성처럼 들릴 수도 있음).

+2

SessionSwitch 이벤트는 분명히 원하는 것입니다. 몇 가지 프로젝트에서 나 자신을 사용하고 있습니다. – Brad

관련 문제