PDA

View Full Version : می دونم تکراریه ..با عرض پوزش : تغییر زبان به فارسی ؟



habedijoo
شنبه 02 مهر 1384, 14:23 عصر
با سلام به همگی

قبلا نحوه تغییر زبان کیبورد به فارسی را دیدم ولی باور کنید هر چی گشتم پیداش نکردم .

1 - چطوری زبان کیبورد رو با کد تغییر دهیم .

یه سوال دیگه هم دارم که امیدوارم جدید باشه .

2- میشه وقتی برنامه می خواد لو بشه چک کنیم ببینیم آیا زبان فارسی نصب یا نه . ؟
و اگر زبان فارسی نصب نیود میشه با کد همون کاری رو انجام داد که توی Regional Setting انجام می دیم . یعنی برنامه ما مراحل نصب زبان فارسی رو انجام بده ؟


با تشکر از همه

Ehsan Zand
شنبه 02 مهر 1384, 15:59 عصر
سلام جواب سوال اولت:


Public Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long
Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim HKL As Long, flags As Long
ActivateKeyboardLayout(HKL, flags)
End Sub

Hamedm
شنبه 02 مهر 1384, 16:06 عصر
سلام

بعضی از اوقات لازمه که زبان ویندوز رو در جای خاصی تغییر بدیم. مثلا در روال Got_Focus زبان فارسی بشه و در روال Lost_Focus زبان به حالت قبلی ( مهم نیست که انگلیسی بوده یا فارسی و یا زبان دیگری) برگردد. برای این کار دوتا تابع نوشتم که میتونید از اونها استفاده کنید:

Public BackLanguage As String = "en-US"
Public Sub FarsiKeyboard()

Dim myCulture As New Globalization.CultureInfo("fa-IR")
Dim mylanguage As InputLanguage

mylanguage = InputLanguage.CurrentInputLanguage
myCulture = mylanguage.Culture

BackLanguage = myCulture.Name
myCulture = New Globalization.CultureInfo("fa-IR")
InputLanguage.CurrentInputLanguage = mylanguage.FromCulture(myCulture)

End Sub

Public Sub BackKeyboard()

Dim myCulture As New Globalization.CultureInfo("en-US")
Dim mylanguage As InputLanguage
myCulture = New Globalization.CultureInfo(BackLanguage)
InputLanguage.CurrentInputLanguage = mylanguage.FromCulture(myCulture)

End Sub

در پناه حق موفق باشید و پرتوان

Hamedm
شنبه 02 مهر 1384, 16:12 عصر
سلام جواب سوال اولت:


Public Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long
Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim HKL As Long, flags As Long
ActivateKeyboardLayout(HKL, flags)
End Sub

سلام

عزیز جان در .NET دیگه استفاده از این تابع API نیاز نیست. این کارارو در VB6.0 انجام میدادیم.

در پناه حق موفق باشید و پرتوان

habedijoo
یک شنبه 03 مهر 1384, 08:35 صبح
سلام
دوستان از جواباتون ممنون . دستون درد نکنه .

برای دو سوال دیگه هم راهکاری هست ؟

mehrdotnet
یک شنبه 03 مهر 1384, 19:37 عصر
اتفاقاً سوال دو برای من هم مهمه اگه کسی جواب بده !!!

حامد مصافی
دوشنبه 04 مهر 1384, 00:13 صبح
سلام
لطف کنید و درباره سوال دوم در بخش ویندوز جستجو کنید
قبلاً پرسیده شده و جواب داده شده

Hamedm
دوشنبه 04 مهر 1384, 10:35 صبح
سلام

در کدی که من قرار دادم لطف کنید Public BackLanguage As String = "en-US" را به Public BackLanguage As String تصحیح کنید.

در پناه حق موفق باشید و پرتوان

habedijoo
دوشنبه 04 مهر 1384, 14:32 عصر
جواب نمیده
Error میده
میشه کد تصحیح شده کامل رو بزاری

Hamedm
دوشنبه 04 مهر 1384, 21:16 عصر
جواب نمیده
Error میده
میشه کد تصحیح شده کامل رو بزاری
سلام دوست عزیز

نه Error نمیده.
این هم یک مثال که بدون خطا است.

در پناه حق موفق باشید و پرتوان

amin_programmer
دوشنبه 04 مهر 1384, 21:37 عصر
مثال در مورد سوال اول