API函数详解:ToAscii函数

Windows API函数 Visual Basic 语法格式声明
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)
Windows API函数功能说明
根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
Windows API函数出口返回值
Long,负值表明按键是“死”的——不能自己将自己转换成一个字符(重音键[accent keys]就是一个例子)。在给定当前键盘状态的前提下,如按键不能被转换(翻译),则返回0。如单个字符已载入lpwTransKey,则返回1。如lpwTransKey里已载入了两个字符(需要把它分隔到两个字节里),那么返回值是2。在当前字符集里,倘若单独一个字符不能表达键盘支持的死键或重音按键组合,就可能得到2的返回值
Windows API函数入口参数表
Windows API函数入口参数类型及说明
uVirtKeyLong,欲转换的虚拟键
uScanCodeLong,键的扫描码。如键处于抬起状态,会设置高位(设为1);如按下,则清除高位(设为0)
lpbKeyStateByte,描述了键盘状态的一个256字符数组的第一个条目。参考GetKeyboardState函数,了解关于这个数组更多的情况
lpwTransKeyInteger,用于装载转换过后的字符的一个整数变量。可用 chr()函数将这个值转换成一个字串
fuStateLong,如一个菜单处于活动状态,则设为1
dwhklLong,欲用于转换的一个键盘布局的句柄
注解
NumLock键的状态会被忽略,因为虚拟键码包括了哪个信息
在微软的win32手册里,对ToAsciiEx函数的建议是将它的lpwTransKey参数设为Long,而不要设为Integer。这里的函数声明根据实际的C语言头,它将参数定义成一个16位的字(既vb的整数)

上页:API函数详解:XFORM函数 下页:API函数详解:AbortPath函数

Windows API函数大全

Windows API函数首页Windows API函数按字母排列
控件与消息函数硬件与系统函数
设备场景函数绘图函数
位图、图标和光栅运算函数菜单函数
文本和字体函数打印函数
文件处理函数进程和线程函数
Windows消息函数网络函数
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号