تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 12

نام تاپيک: تغییر زبان و اعداد به فارسی در vb

  1. #1
    پروفشنال ooje_asman's Avatar
    تاريخ عضويت
    Feb 2005
    پست ها
    579

    پيش فرض تغییر زبان و اعداد به فارسی در vb

    برنامه ای – در هر دو vb6 و vb.net- که بتواند زبان و اعداد سیستم را چک کند و در صورتی که فارسی نباشد آنرا به فارسی تغییر دهد و آیا اصلا برنامه ای وجود دارد که بتواند فقط این کار را در برنامه انجام دهد و با سایر برنامه های ویندوز کاری نداشته باشد.

  2. #2
    مهمان
    تاريخ عضويت
    Mar 2005
    پست ها
    513

    پيش فرض

    سلام
    توسط api مي تواني اين کار را انجام بدهي:
    ابتدا يک تابع را اعلان مي نماييم:
    Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
    حال در قسمت لود فرم کد زير را مي نويسي:
    Call ActivateKeyboardLayout(1, 1)
    با ابن کار کيبورد فارسي را اکتيو مي نماييد
    در انتها هم بايد در قسمت unload مربوط به فرم اصلي برنامه کد زير را بنويسيم تا به حالت اوليه برگرديم.
    Call ActivateKeyboardLayout(0, 1)
    موفق باشيد.

  3. #3
    پروفشنال ooje_asman's Avatar
    تاريخ عضويت
    Feb 2005
    پست ها
    579

    پيش فرض

    با سلام و مرسی
    رامبد جان قسمت اول فکر کنم مونده که سیستم چک کنه ببینه زبان فارسی فعاله یا نه و به نظرتان با وجود xp و اینکه اکثرا زبان فارسی رو فعال می کنند نیازی به این کارا هست

  4. #4
    مهمان
    تاريخ عضويت
    Mar 2005
    پست ها
    513

    پيش فرض

    سلام
    شما مي توانيد توسط تابع GetKeyboardLayout متوجه شويد که فارسي فعال است يا انگليسي:
    Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
    If GetKeyboardLayout(0) = 67175425 Then
    Call ActivateKeyboardLayout(1, 1)
    End If

    ابتدا برنامه اي بنويسيد که مقدار GetKeyboardLayout(0) را برگرداند. يعني کيبورد را فارسي کنيد و مقدار اين تابع را ببينيد که چه مي شود و سپس انگليسي کنيد و مقدار برگشتي اين تابع را ببينيد.
    عددي که با برگرداندن تابع فوق براي زبان انگليسي مي دهد را جلوي شرط فوق قرار دهيد. همان عددي که در بالا 67175425 است.
    درباره اينکه آيا نياز به چنين کاري است بستگي به سيستم عاملي دارد که شما مي خواهيد روي آن برنامه را اجرا نماييد.
    بعضي مواقع نياز به اين کار هست مثلا وقتي که شما برنامه را به چندين نفر مي دهيد.
    اما اگر برنامه را سفارشي مي نويسيد بايد به شخص گوشزد کنيد که مثلا برنامه تحت ويندوز XP اجرا مي شود.
    موفق باشيد

  5. #5
    پروفشنال ooje_asman's Avatar
    تاريخ عضويت
    Feb 2005
    پست ها
    579

    پيش فرض

    با سلام رامبد جان من اینارو نوشتم و برا فارسی و انگلیسی به ترتیب این اعداد رو برگرداند : وقتی صفحه رو با Shift + Alt فارسی میکردم : 9222812402685903913 وقتی صفحه انگلیسی بود : 9222812402683806729

  6. #6
    مهمان
    تاريخ عضويت
    Mar 2005
    پست ها
    513

    پيش فرض

    سلام دوست عزيز
    من نوشتم که با تابع ActivateKeyboardLayout(1, 1) مي توان از زباني به زبان ديگر در صفحه کليد سوئيچ کرد.
    موفق باشيد

  7. #7
    اگه نباشه جاش خالی می مونه bithiah's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    هرکجاهستم، باشم، آسمان مال من است
    پست ها
    479

    پيش فرض

    اوج آسمان عزيز
    اين كد نوشته خودمه. مي توني ازش استفاده كني. هركي دوست داشت مي تونه با ذكر اسمم به هر كس ديگه اي لازم داره بده:

    '************************************************* ************************************
    '
    ' modEn-Fa.bas by Bithiah modEn-Fa.bas
    ' ---> Send me to: [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] <---
    ' *********************************
    '
    ' Note: This module works in MS Windows 98, 2000, XP provided that your keyborad has
    ' both layouts(English and Farsi). But I didn't tested or upgraded it with
    ' VB .Net.
    ' Please inform me about possible compatiblity with .Net and any other
    ' detected errors.
    '
    '************************************************* ************************************

    Private Declare Function ActivateKeyboardLayout Lib "User32" _
    (ByVal HKL As Long, ByVal flags As Long) As Long
    Private Declare Function GetKeyboardLayout Lib "User32" _
    (ByVal dwLayout As Long) As Long
    Private Const VER_PLATFORM_WIN32s = 0
    Private Const VER_PLATFORM_WIN32_WINDOWS = 1
    Private Const VER_PLATFORM_WIN32_NT = 2

    '************************************************* ************************************
    '
    'S E T F A R S I ()
    '
    '************************************************* ************************************
    'sets keyborad layout to Farsi
    '************************************************* ************************************

    Public Sub SetFarsi()

    Dim x, dwLo As Long
    Dim OSstr As String

    x = GetKeyboardLayout(dwLo)
    If x = 67699721 Then
    x = ActivateKeyboardLayout(67175425, klf_reorder)
    x = ActivateKeyboardLayout(67175465, klf_reorder)
    x = ActivateKeyboardLayout(69796905, klf_reorder)
    End If

    End Sub

    '************************************************* ************************************
    '
    'S E T E N G L I S H ()
    '
    '************************************************* ************************************
    'sets keyboard layout to English
    '************************************************* ************************************

    Public Sub SetEnglish()

    Dim x, dwLo As Long

    x = GetKeyboardLayout(dwLo)
    If x = 67175425 Or x = 67175465 Or x = 69796905 Then
    x = ActivateKeyboardLayout(67699721, klf_reorder)
    End If

    End Sub

    '************************************************* ************************************

    'I S F A R S I ()

    '************************************************* ************************************
    'returns TRUE if keyboard layout is Farsi, else returns FALSE
    '************************************************* ************************************

    Public Function IsFarsi() As Boolean

    Dim x, dwLo As Long

    x = GetKeyboardLayout(dwLo)
    If x = 67175425 Or x = 67175465 Or x = 69796905 Then
    IsFarsi = True
    Else
    IsFarsi = False
    End If

    End Function

  8. #8
    مهمان
    تاريخ عضويت
    Mar 2005
    پست ها
    513

    پيش فرض

    سلام خانم bithiah
    اين کدها را خودتان نوشتيد که ميگيد به اسم شما پخش بشه؟؟؟

  9. #9
    اگه نباشه جاش خالی می مونه bithiah's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    هرکجاهستم، باشم، آسمان مال من است
    پست ها
    479

    پيش فرض

    بله آقا رامبد. خط به خطش رو و فقط با كمك MSDN. چيه؟ به ما نمياد :oops:

  10. #10
    مهمان
    تاريخ عضويت
    Mar 2005
    پست ها
    513

    پيش فرض

    نقل قول نوشته شده توسط bithiah
    بله آقا رامبد. خط به خطش رو و فقط با كمك MSDN. چيه؟ به ما نمياد :oops:
    سلام
    اميدوارم کدهاي خيلي بهتري هم بتواني بنويسي با MSDN!!!

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •