با سلام در مورد تغییر زبان جستجو کردم ولی نتیجه نگرفتم ، تغییر ربان تو ایکس پی انجام میشه ولی تو 7 نمیشه تو کدها هم از FA استفاده کردم هم از Farsi , هم از Persian .
ممنون میشم در صورت اطلاع دوستان پاسخ دهند
سپاس
Printable View
با سلام در مورد تغییر زبان جستجو کردم ولی نتیجه نگرفتم ، تغییر ربان تو ایکس پی انجام میشه ولی تو 7 نمیشه تو کدها هم از FA استفاده کردم هم از Farsi , هم از Persian .
ممنون میشم در صورت اطلاع دوستان پاسخ دهند
سپاس
Public Function lang_changer_selectable(ByVal lang As String) As Int64 'load the main form's lamguage
Dim l As InputLanguage
Dim ll As InputLanguageCollection
Dim a As String
Try
ll = InputLanguage.InstalledInputLanguages
For Each l In ll
a = Microsoft.VisualBasic.Left(l.LayoutName, 1)
Select Case lang
Case "EN"
If a = "E" Or a = "e" Or a = "u" Or a = "U" Then
Application.CurrentInputLanguage = l
Exit For
End If
Case "FA"
If a = "F" Or a = "f" Or a = "P" Or a = "p" Then
Application.CurrentInputLanguage = l
Exit For
End If
Case "67699721" 'us
If l.Handle.ToString = lang Then
Application.CurrentInputLanguage = l
Exit For
End If
Case "69796905" 'fa
If l.Handle.ToString = lang Then
Application.CurrentInputLanguage = l
Exit For
End If
End Select
Next
FileClose(1)
Catch ex As Exception
End Try
Return l.Handle.ToInt64
End Function
با سلام ممنونم از پاسخ شما ولی کدهای ارسالی شما رو نتونستم بفهمم چرا بهم ریخته شده لطف کنید به عکس ضمیمه یه نگاهی بیاندازید . سپاسگزارم
Public Function lang_changer_selectable(ByVal lang As String) As Int64 'load the main form's lamguage
Dim l As InputLanguage
Dim ll As InputLanguageCollection
Dim a As String
Try
ll = InputLanguage.InstalledInputLanguages
For Each l In ll
a = Microsoft.VisualBasic.Left(l.LayoutName, 1)
Select Case lang
Case "EN"
If a = "E" Or a = "e" Or a = "u" Or a = "U" Then
Application.CurrentInputLanguage = l
Exit For
End If
Case "FA"
If a = "F" Or a = "f" Or a = "P" Or a = "p" Then
Application.CurrentInputLanguage = l
Exit For
End If
Case "67699721" 'us
If l.Handle.ToString = lang Then
Application.CurrentInputLanguage = l
Exit For
End If
Case "69796905" 'fa
If l.Handle.ToString = lang Then
Application.CurrentInputLanguage = l
Exit For
End If
End Select
Next
FileClose(1)
Catch ex As Exception
End Try
Return l.Handle.ToInt64
End Function
این کپی کنین یه فانکشن البته مال انجین اورانوس هستش. استاد فراهانی
متاسفانه در ویندوز 7 کار نمیکنه!!
این فانکشن برای تمامی ویندوزها تست شده از اکس پی تا ویندوز 10.لطفا کدی رو که نوشتین و جایی که قراره ازش استفاده کنین رو بفرستین تا دوستان راهنمایی کنند
ممنونم از توجه شما من این کد رو تو پروژه مد نظرم تو یا فانکشن گزاشتم و تو فرم لود ازش استفاده کردم ولی نتاسفانه جواب نگرفتم که طبق فرمایش شما حتما اشکال از نوع فراخوانیه که من انجام دادم عذر خواهی میکنم که نمیتونم خود پروزه رو ارسال کنم میشه خواهش کنم تو یه سورس کوچیک ارسال کنید . سپاسگزارم چه بشود چه نشود.
سلام اینجا فایل قرار دادم موفق باشید
سپاسگزارم فایل شما رو دریافت کردم و در کمال ناباوری کار نکرد فرمان رو با یک باتن اجرا کردم کارکرد واقعا ممنونم در کل تستی که انجام میدادم تو فرم لود اجرا میکردم نمیدونم چرا کار نمیکرد کماکان در فرم لود کار نمیکنه ولی مهم نیست باز هم سپاسگزارم
سلام وقت بخیر خیلی ساده است ابتدا یه کلاس تعریف کن یا همین و کپی کن راحت :لبخند:
Public Class InputLanguages
Public Sub EnglishKeyboard()
For Each Language As InputLanguage In InputLanguage.InstalledInputLanguages
If Language.Culture.TwoLetterISOLanguageName.Contains ("en") = True Then
InputLanguage.CurrentInputLanguage = Language
End If
Next
End Sub
Public Sub PersianKeyboard()
For Each Language As InputLanguage In InputLanguage.InstalledInputLanguages
If Language.Culture.TwoLetterISOLanguageName.Contains ("fa") = True Then
InputLanguage.CurrentInputLanguage = Language
End If
Next
End Sub
End Class
توجه توجه :
برای ویندوزهای 7 و xp حروف اختصاری زبان فارسی رو باید با یه or اضافه کنی این مثال من برا ویندوز 10 هست که زبان فارسی رو با "fa" می شناسه
خوب حالا بیا هرجا خواستی فارسی تایپ کنی مثلا یه تکس باکس که میخواد نام کالا رو وارد که تو رویداد GotFocus از کلاس استفاده کن به این صورت
InputLang.PersianKeyboard()
و اینم برا تکس باکس هایی که انگلیسی میخوان
InputLang.EnglishKeyboard()
فراموش کردم بگم تو هر فرم که خواستی از این کلاس استفاده کنی باید یه متغیر از نوع کلاس تعریف شه
Private InputLang As New InputLanguages
سپاسگزارم از پاسخ شما