0

我试图获取 Windows 的当前 keboard语言

语言栏:

在此处输入图像描述

我的代码:

Private Sub Form1_InputLanguageChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.InputLanguageChangedEventArgs) Handles Me.InputLanguageChanged

    Me.Text = e.InputLanguage.LayoutName

End Sub

此代码只能获取表单语言

我想从语言栏中获取当前的Windows语言。

我需要使用 user32.dll 吗?

4

1 回答 1

0

编辑

更改代码以调用 PInvoke GetKeyboardLayoutName (...)。不幸的是,这只是一个数字 - 仍在努力检索正确的名称。

Imports System.Runtime.InteropServices
Imports System.Text

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    Dim sb As New StringBuilder
    If GetKeyboardLayoutName(sb) Then
        Me.Text = sb.ToString()
    End If
End Sub
<DllImport("user32.dll", CharSet:=CharSet.Unicode)>
Private Shared Function GetKeyboardLayoutName(pwszKLID As StringBuilder) As Boolean
End Function
于 2012-09-06T04:28:14.607 回答