VB声明 | |
Declare Function ToAscii& Lib "user32" (ByVal
uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, lpwTransKey As Integer,
ByVal fuState As Long) Declare Function ToAsciiEx& Lib "user32" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpKeyState As Byte, lpwTransKey As Integer, ByVal fuState As Long, ByVal dwhkl As Long) |
|
说明 | |
根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 | |
返回值 | |
Long,负值表明按键是“死”的——不能自己将自己转换成一个字符(重音键[accent keys]就是一个例子)。在给定当前键盘状态的前提下,如按键不能被转换(翻译),则返回0。如单个字符已载入lpwTransKey,则返回1。如lpwTransKey里已载入了两个字符(需要把它分隔到两个字节里),那么返回值是2。在当前字符集里,倘若单独一个字符不能表达键盘支持的死键或重音按键组合,就可能得到2的返回值 | |
参数表 | |
参数 | 类型及说明 |
uVirtKey | Long,欲转换的虚拟键 |
uScanCode | Long,键的扫描码。如键处于抬起状态,会设置高位(设为1);如按下,则清除高位(设为0) |
lpbKeyState | Byte,描述了键盘状态的一个256字符数组的第一个条目。参考GetKeyboardState函数,了解关于这个数组更多的情况 |
lpwTransKey | Integer,用于装载转换过后的字符的一个整数变量。可用 chr()函数将这个值转换成一个字串 |
fuState | Long,如一个菜单处于活动状态,则设为1 |
dwhkl | Long,欲用于转换的一个键盘布局的句柄 |
注解 | |
NumLock键的状态会被忽略,因为虚拟键码包括了哪个信息 |