2009-07-27 3 views
0

나는 C++에서 다음 예제를 가지고있다. 첫 번째 예제는 예상대로 작동하지 않는다. 또한 Windows 시스템 키보드에도 동일한 문제가 있음을 알 수 있습니다. 누구나 왜 이런 일을하는 것이 좋을까요?내 키보드 이벤트 중 일부는 작동하고 다른 일부는 작동하지 않는 이유는 무엇입니까?

keybd_event(VK_LWIN,0x5b,0 , 0); /* Windows Key Press */ 
keybd_event(VkKeyScan('l'), 0, 0, 0); /* L key Press */ 
keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP,0); /* L key Release */ 
keybd_event(VK_LWIN,0x5b,KEYEVENTF_KEYUP,0); /* Windows Key Release */ 

이 하나가 실패 :

keybd_event(VK_CONTROL,0x11,0 , 0); /* Control Key Press */ 
keybd_event(VK_MENU,0xb8, 0, 0); /* Alt Press */ 
keybd_event(VK_DELETE,0x2e, 0, 0); /* Del Press */ 

keybd_event(VK_DELETE,0x2e, KEYEVENTF_KEYUP,0); /* Del Release */ 
keybd_event(VK_MENU,0xb8, KEYEVENTF_KEYUP,0); /* Alt Release */ 
keybd_event(VK_CONTROL,0x11,KEYEVENTF_KEYUP,0); /* Control Key Release */ 

답변

2

그것은 특정 조합이 시스템에 의해 보호되는 가능성이 있습니다. Windows에는 로그인 할 때 사용자 이름과 암호를 입력하기 전에 Crtl + Alt + Del 키를 누르도록 요청할 수있는이 기능이 있습니다.이 기능은 실제 사람이 자격 증명을 입력하는지 확인하는 것입니다. 악성 프로그램이 아닙니다.

+0

Dragon NaturallySpeaking Advanced Scripting 코드를 통해 전송할 때와 동일한 'Win + L'키 조합은 작동하지 않지만 L 이외의 키를 가진 명령은 동일한 문제가 있습니다. OS에 의해 보호 받았다는 당신의 이론은 나에게 타당한 것처럼 보인다. – kevinmicke

관련 문제