2011-12-22 60 views
0

我使用普通的C編寫Windows控制檯應用程序,並使用PeekConsoleInput/ReadConsoleInput獲取用戶的擊鍵並處理它們。使用Peek/ReadConsoleInput()獲取當前狀態的caps/scroll/numlock不使用Peek/ReadConsoleInput()

當程序啓動時,我需要獲取Caps Lock,Scroll Lock和Num Lock鍵的當前狀態,之前用戶輸入了任何內容。這意味着消息隊列中不會有KEY_EVENT處理。

這可能嗎?如果是這樣,怎麼樣?我已經看過了wincon.h中的大部分函數,​​沒有什麼看起來合適的。

回答

2

您可以調用GetAsyncKeyState三次,它通常會工作,但有幾種情況下它仍然不適合您。您的三個調用的參數將是VK_CAPITAL,VK_SCROLL和VK_NUMLOCK。

+0

謝謝!我現在使用GetKeyState()而不是Async,但它也可以正常工作。 – Charles 2011-12-22 04:09:34