제어판> 언어> 키보드에서 선택할 수있는 우르두어 용 Phoenetic 키 보드를 설치했습니다. vb.net 코드를 사용하여 언어를 추가하고 키보드를 선택할 수 있습니까?vb.net 코드를 사용하여 키보드 레이아웃을 chosing
감사
는제어판> 언어> 키보드에서 선택할 수있는 우르두어 용 Phoenetic 키 보드를 설치했습니다. vb.net 코드를 사용하여 언어를 추가하고 키보드를 선택할 수 있습니까?vb.net 코드를 사용하여 키보드 레이아웃을 chosing
감사
는InputLanguage.CurrentInputLanguage 속성을 사용하면 키보드 레이아웃을 전환 할 수 있습니다. 하나의 언어에 대해 여러 레이아웃을 처리 할 수는 없지만 실제로 "Phoenetic Key board"가 실제로 무엇인지는 알지 못합니다. 기본 Windows API 함수는 LoadKeyboardLayout() 및 ActivateKeyboardLayout()입니다.이 API 함수는 pinvoke 할 수 있습니다. GetKeyboardLayoutList()를 사용하여 설치된 레이아웃 목록을 가져 오려면 GetKeyboardLayoutName()을 사용하여 레이아웃에 대한 설명을 얻습니다. 또한 InputLanguage 클래스에서 다룹니다.
키보드 레이아웃을 선택하려면 일반적으로 사용자에게 맡겨야합니다. 사용자 환경 설정이 사용성에 상당히 적대적입니다. 언어 표시 줄로하기 쉽습니다.
당신은이 방법으로 응용 프로그램에 입력 언어를 변경할 수 있습니다
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(New System.Globalization.CultureInfo("ZH-CN"))
을하지만 당신은 윈도우 API를 사용하여 일시적으로 코드에서 필요한 InputLanguage
당신이 당신의 문화를 설치할 수 있습니다 설치된 입력 언어가없는 경우 :
<DllImport("user32.dll")> _
Private Shared Function UnloadKeyboardLayout(hkl As IntPtr) As Boolean
End Function
<DllImport("user32.dll")> _
Private Shared Function LoadKeyboardLayout(pwszKLID As String, Flags As UInteger) As IntPtr
End Function
Public Class KeyboardHolder
Implements IDisposable
Private ReadOnly pointer As IntPtr
Public Sub New(klid As Integer)
pointer = LoadKeyboardLayout(klid.ToString("X8"), 1)
End Sub
Public Sub New(culture As CultureInfo)
Me.New(culture.KeyboardLayoutId)
End Sub
Public Sub Dispose()
UnloadKeyboardLayout(pointer)
GC.SuppressFinalize(Me)
End Sub
Protected Overrides Sub Finalize()
Try
UnloadKeyboardLayout(pointer)
Finally
MyBase.Finalize()
End Try
End Sub
End Class
과이 방법으로 사용
' install keyboard layout temporary
Dim keyboard As New KeyboardHolder(New System.Globalization.CultureInfo("ZH-CN"))
' after finishing what you want remove temporary added keyboard layout:
keyboard.Dispose()
을