PDA

View Full Version : نحوه سوییچ کردن بین مود انگلیسی و فارسی



esi
چهارشنبه 18 تیر 1382, 23:59 عصر
سلام

قطعه کدی که باعث میشود تا حالت فارسی به انگلیسی و بالعکس تغییر کند بدون اینکه

کلیدهای ALT+SHIFT را بزنیم چیست -- اگر ممکن است کد VB مربوطه را بنویسید-- با تشکر

MBeigy
پنج شنبه 19 تیر 1382, 05:44 صبح
سلام دوست گرامی
برای اینکار اول این تابع رو تعریف می کنی:

Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
بعد در هر جا که خواستی مثل رویداد کلیک یک دکمه اینطوری فراخوانی می کنی:

Dim Change As Long
Change = LoadKeyboardLayout("00000401", 1)
کد بالا باعث تغییر زبان به فارسی میشه البته در ویندوز 98 عربی
با پاس کردن 00000409 به جای 00000401میتونی به انگلیسی برگردونی.
اگر بخوای توی ویندوز 2000 یا XP فارسی بشه باید مقدار 00000429 رو پاس کنی.
و برای انگلیسی کردن دوباره همون 00000409 رو استفاده کن.
موفق باشی. :P

روح اله معینی زاده
یک شنبه 05 مرداد 1382, 10:41 صبح
با سلام :lol:
من تازه عضو این سایت شدم.
برنامه نویسی رو هم تجربی یاد گرفتم، بنابراین اگه اشتباهی دارم حتما بهم یادآوری کنید.

و اما نظر من

اگه می خواهید که یک متغیر رو در حافظه وارد نکنید (مانند متغیر Change در مثال Mbeigy) نیز می توانید از دستور LoadKeyboardLayout استفاده کنید.
برای این منظور فقط باید پرانتزهای موجود در دستور فوق را حذف نمایید.

یک نمونه برنامه کوچک برای مثال نوشتم که به همراه این جواب می فرستم. امیدوارم مفید واقع شود.
البته استفاده از تابع فوق که آقای Mbeigy گفته است، اگر در یک ماژول باشد بهتر است، زیرا می توانید آن را در کل فرم هایی که در برنامه تان دارید یا اضافه می کنید، استفاده نمایید.