نمایش نتایج 1 تا 12 از 12

نام تاپیک: فارسی کردن کیبورد با دستورات api

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #11

    تابع تبدیل صفحه کلید به فارسی ولاتین

    باسلام مجدد خدمت اساتید خودم

    باتوجه به اینکه بیشتر برنامه های من تحت داس وشبکه (فاکس پرو) میباشد وبیشتر

    درزمینه شرکتهای تعاونی مصرف میباشد وتازه ویژوال فاکس پرو را شروع کردم به راهنمایی

    های شما عزیزان نیازمندم البته بصورت دست گرمی یک سی تا فرمی نوشته ام

    وارتباطاتشان نیز خوب است و این فایل را نیز از یکی ازدوستان گرفته ام تقریبا مشابه

    دستورات آقا کیا است پرحرفی کردم عذرمیخواهم


    PARAMETERS KeymodeInValue
    If !Vartype(KeymodeInValue)=="C"
    Return .F.
    EndIf
    Do Case
    Case "WINDOWS 5" $ Upper(OS())
    DECLARE LONG LoadKeyboardLayout IN WIN32API STRING pwszKLID,INTEGER Flags
    Do Case
    Case Upper(KeymodeInValue)='FA'
    lnRetCode = LoadKeyboardLayout('00000429', 1)
    Case Upper(KeymodeInValue)='EN'
    lnRetCode = LoadKeyboardLayout('00000409', 1)
    EndCase
    Other
    Declare Integer ActivateKeyboardLayout In Win32Api Integer,Integer
    Do Case
    Case Upper(KeymodeInValue)='FA'
    ActivateKeyboardLayout(1025,8)
    Case Upper(KeymodeInValue)='EN'
    ActivateKeyboardLayout(1033,0)
    EndCase
    EndCase
    Return .T.




    PARAMETERS KeymodeInValue
    Local OldOnError
    OldOnError=On("ERROR")
    On Error Wait Nowa
    DECLARE INTEGER GetKeyboardLayout IN win32api integer ValueGetKeyboardLayout
    DECLARE INTEGER ActivateKeyboardLayout IN win32api integer ValueActivateKeyboardLayout
    Old_GetKeyboardLayout=GetKeyboardLayout(0)
    keymode_loopmax=20
    keymode_loopcount=0
    Do Case
    Case Upper(KeymodeInValue)='FA'
    Do While GetKeyboardLayout(0)<>67175425 .AND. GetKeyboardLayout(0)<>70255657 .AND. keymode_loopcount<keymode_loopmax
    keymode_loopcount=keymode_loopcount+1
    =ActivateKeyboardLayout(1)
    EndDo
    Case Upper(KeymodeInValue)='EN'
    Do While GetKeyboardLayout(0)<>67699721 .AND. keymode_loopcount<keymode_loopmax
    keymode_loopcount=keymode_loopcount+1
    =ActivateKeyboardLayout(1)
    EndDo
    Case Upper(KeymodeInValue)='UK'
    Do While GetKeyboardLayout(0)<>67699746 .AND. keymode_loopcount<keymode_loopmax
    keymode_loopcount=keymode_loopcount+1
    =ActivateKeyboardLayout(1)
    EndDo
    EndCase
    If keymode_loopcount=keymode_loopmax
    Do While GetKeyboardLayout(0)<>Old_GetKeyboardLayout
    =ActivateKeyboardLayout(1)
    EndDo
    KeymodeOutValue=.F.
    Else
    KeymodeOutValue=.T.
    EndIf
    Clear Dlls
    On Error &OldOnError
    Return KeymodeOutValue


    آخرین ویرایش به وسیله rezaTavak : شنبه 11 شهریور 1385 در 12:34 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •