2009-07-27 3 views
0

私は次の例をC++で持っています。最初のものは期待通りに動作し、2番目のものは期待しません。また、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 */ 

この1つは失敗します。

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

関連する問題