4

我是 vb.net 的新手,我应该在程序运行时使用 API 函数将键盘语言更改为波斯语(波斯语)(这是一个带有文本框的普通表单)。有人知道我该怎么做吗?任何形式的帮助将不胜感激。

4

4 回答 4

4

它很容易。无需使用 api 它内置到 .net 框架中。

Dim TypeOfLanguage = New System.Globalization.CultureInfo("fa") ' or "fa-IR" for Farsi(Iran) 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage)

有关本地化的更多信息..

于 2012-05-01T01:37:21.190 回答
0

Would be nice, but InputLanguage does not seem to work with WPF. InputLanguage is a Windows Forms type.

于 2015-04-29T15:53:40.133 回答
0
Dim TypeOfLanguage = New System.Globalization.CultureInfo("fa") ' or "fa-IR" for Farsi(Iran) 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage)

无需使用任何 API 即可正常工作。

于 2012-12-27T11:04:06.390 回答
0

我创建了一个 prog,它使用命令 My.Computer.Keyboard.SendKeys("en-US text", True) 将字符发送到另一个应用程序,但有时当前输入语言不是 en-US,那么所有字符发送都不正确。在学习了Ezi word之后,我通过修改以下内容解决了:感谢Ezi。

Private Sub ipl(lg As String)
    Dim TypeOfLanguage = New System.Globalization.CultureInfo(lg) ' or "fa-IR" for Farsi(Iran) 
    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage)
End Sub

Private Sub swlg() 'switch language TH-US
    If InputLanguage.CurrentInputLanguage.Culture.Name <> "en-US" Then
        Do
            ipl("en-US")
        Loop Until InputLanguage.CurrentInputLanguage.Culture.Name = "en-US"
    End If
End Sub
于 2020-11-20T04:58:30.383 回答