当前位置:  开发笔记 > 编程语言 > 正文

将keycode转换为key char

如何解决《将keycode转换为keychar》经验,为你挑选了2个好方法。

如何将密钥代码转换为.NET中的keychar?



1> Ady..:

在VB.NET中:

ChrW(70)

在C#中你可以施放:

(char) 70



2> 小智..:

我使用user32.dll的库类解决了这个问题.我更喜欢Framework类,但找不到一个,所以这对我有用.

Imports System.Runtime.InteropServices

Public Class KeyCodeToAscii

     _
    Public Shared Function ToAscii(ByVal uVirtKey As Integer, _
                                   ByVal uScanCode As Integer, _
                                   ByVal lpbKeyState As Byte(), _
                                   ByVal lpChar As Byte(), _
                                   ByVal uFlags As Integer) _
                                   As Integer
    End Function

     _
    Public Shared Function GetKeyboardState(ByVal pbKeyState As Byte()) _
      As Integer

    End Function

    Public Shared Function GetAsciiCharacter(ByVal uVirtKey As Integer) _
      As Char

        Dim lpKeyState As Byte() = New Byte(255) {}
        GetKeyboardState(lpKeyState)
        Dim lpChar As Byte() = New Byte(1) {}
        If ToAscii(uVirtKey, 0, lpKeyState, lpChar, 0) = 1 Then
            Return Convert.ToChar((lpChar(0)))
        Else
            Return New Char()
        End If
    End Function

End Class


ToAscii是关键功能,+ 1.但是,请参阅MSDN中的备注:*提供给ToAscii函数的参数可能不足以转换虚拟键代码,因为先前的死键存储在键盘布局中.*http://msdn.microsoft.com /en-us/library/windows/desktop/ms646316(v=vs.85).aspx ---另外,请考虑使用ToUnicode.
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有