این فانکشن رو پیدا کردم و یه کم اصلاحش کردم تا تبدیل فارسی رو انجام بده. براحتی شیفت فارسی و انگلیسی ویندوز رو براتون انجام می ده. حالا اگه A_Farsi رو روی Got Focus صدا بزنین مشکل حل می شه و دیگه نیازی نیست که Keyboard Language مربوط به کنترل جستجو رو تغییر بدین.
البته اگه جایی هم خواستین فقط لاتین وارد کنین می تونین از A_Eng هم استفاده کنین.
Option Compare Database
Public Declare Function ActivateKeyboardLayout Lib _
"user32.dll" (ByVal myLanguage As Long, Flag As Boolean) As Long
'define your desired keyboardlanguage
'find your desired language at http://www.trigeminal.com/frmrpt2dap.asp
Public Const Farsi = 1065 'Farsi keyboard language layout
Public Const Eng = 1033 'english(united states)keyboard language layout
Public Sub A_Farsi()
'switch to your desired language
Call ActivateKeyboardLayout(Farsi, 0)
End Sub
Public Sub A_Eng()
'switch back to english(united states)
Call ActivateKeyboardLayout(Eng, 0)
End Sub