2009-09-01 27 views
0

有沒有辦法將字符轉換爲相應的硬件掃描碼(而不是虛擬鍵碼)?我需要與古代硬件設備進行通信。如何在win32中將硬件ascii轉換爲硬件掃描碼

+0

哪個古老的硬件設備? – pavium 2009-09-01 08:42:25

+0

舊的自制嵌入式系統。它接受發送給它的原始鍵盤掃描碼。我製作了一個C#應用程序來控制它,並且我希望發送給它的數據可讀。 – 2009-09-01 09:52:53

回答

1

似乎最直接的方法是使用MapVirtualKey或MapVirtualKeyEx將VK代碼轉換爲掃描代碼。

可以使用VkKeyScan(根據MS文檔提取包含VK代碼的低位字節)獲得VK掃描代碼的字符。所以得到掃描碼'X':

UINT VKCode=LOBYTE(VkKeyScan('X')); 
UINT ScanCode=MapVirtualKey(VKCode,0); 
+2

更完整的答案是,使用VkKeyScan將密鑰轉換爲虛擬密鑰,然後用MapVirtualKey將其轉換爲掃描代碼 – 2009-09-01 10:01:27

+0

更改我的代碼以反映此改進 - 感謝Elazar – Elemental 2009-09-01 14:28:07

+0

實際上在現實生活中嘗試過這種方法,然後出現問題;在重讀MS文檔後,我將LOBYTE添加到上面的解決方案代碼中 – Elemental 2009-09-01 23:13:04

相關問題