虚拟键码转换成ASCII码函数API
ToAscii
ToAsciiEx
虚拟键码转换成Unicode字符API
ToUnicode
ToUnicodeEx

解决方案 »

  1.   

    这些函数不会用啊,能举个实例吗?
    比如在窗体的KeyDown事件中e.KeyCode得到的就是虚拟键码
    把它转换成字符显示在窗体的标题上
    也就是每按下一个键,就在窗体的标题上显示该字符注意:我知道可以用KeyPress事件的e.KeyChar,不过我主要是想知道怎么把虚拟键码转换成字符
      

  2.   

    参考如下代码:
    using System.Runtime.InteropServices;[DllImport("user32.dll")]
    public static extern int GetKeyboardState(byte[] keystate);[DllImport("user32.dll")]
    public static extern int ToAscii(uint uVirtKey, uint uScanCode, byte[] lpKeyState,
        StringBuilder lpChar, uint uFlags);private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        byte[] vKeyState = new byte[0x100];
        GetKeyboardState(vKeyState);
        StringBuilder vBuffer = new StringBuilder(2);
        ToAscii((uint)e.KeyCode, 0, vKeyState, vBuffer, 0);
        Text = vBuffer.ToString();
    }