我是vb.net的新手,我应该在程序运行时使用API函数将键盘语言更改为Farsi(波斯语)(这是一个带有文本框的普通表单)。有人知道我该怎么办? 任何形式的帮助将不胜感激。
答案 0 :(得分:4)
非常容易。无需使用api内置于.net框架中。
Dim TypeOfLanguage = New System.Globalization.CultureInfo("fa") ' or "fa-IR" for Farsi(Iran)
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage)
答案 1 :(得分:0)
Dim TypeOfLanguage = New System.Globalization.CultureInfo("fa") ' or "fa-IR" for Farsi(Iran)
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage)
这样可以正常工作而无需使用任何API。
答案 2 :(得分:0)
会很好,但 InputLanguage 似乎不适用于WPF。 InputLanguage是Windows窗体类型。
答案 3 :(得分:0)
我创建了一个编,该编使用命令My.Computer.Keyboard.SendKeys(“ en-US text”,True)将字符发送到另一个应用程序,但是有时当前输入语言不是en-US,则所有字符发送均不正确。 经过对Ezi单词的研究,我可以通过修改以下内容来解决: 感谢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