2015-05-09 41 views
0

如何找到與當前鍵盤佈局有關的字符的可能組合鍵查找關於當前鍵盤佈局的字符的可能組合鍵

例如;

可以說,我的鍵盤上的大寫鎖定已關閉 因此,在這種情況下,對於字符「A」組合鍵應該是很容易Shift + A鍵

。如何對鍵盤上的非ASCII字符或不可見的字符,如「@」字符或「\」

for "@" I use Ctrl + Alt + Q 
for "\" I use Ctrl + Alt + * 
for "{" I use Ctrl + Alt + 7 

所以,我怎麼能知道哪個鍵組合我應該發送到應用程序,使其處理「{」鍵假設應用程序驗證該組合以確定我是機器人還是人。

在此先感謝

+0

C++標準庫沒有對原材料的鍵盤操作功能。我不認爲你會找到任何便攜式圖書館。所以你基本上被OS API困住了。 –

回答

0

在Windows中可以使用VkKeyScan(char ch)功能。它返回一個短值,其中包含低位字節上的虛擬鍵碼和高位字節上的修飾鍵標誌。

可以通過聲明呼籲在C#:

[DllImport("user32.dll", CharSet = CharSet.Unicode)] 
static extern short VkKeyScan(char ch); 

這裏是鏈接到文件:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms646329%28v=vs.85%29.aspx

+0

我認爲這可以覆蓋我的要求。除了當前的虛擬鍵碼。所以如果我想通過api發送'#'字符VkKeyScan將返回我Alt + Ctrl,但不是Key.D3。那麼我怎樣才能提取Key.D3呢? – ahme

+0

你可以屏蔽返回值:'int virtualKeyCode = returnValue&0xFF'來獲得密鑰。 –

+0

偉大。這樣可行。但如果大寫鎖定打開,則說'Shift'+ 65代表'A'。你有什麼主意嗎 ? – ahme