باسلام مجدد خدمت اساتید خودم
باتوجه به اینکه بیشتر برنامه های من تحت داس وشبکه (فاکس پرو) میباشد وبیشتر
درزمینه شرکتهای تعاونی مصرف میباشد وتازه ویژوال فاکس پرو را شروع کردم به راهنمایی
های شما عزیزان نیازمندم البته بصورت دست گرمی یک سی تا فرمی نوشته ام
وارتباطاتشان نیز خوب است و این فایل را نیز از یکی ازدوستان گرفته ام تقریبا مشابه
دستورات آقا کیا است پرحرفی کردم عذرمیخواهم
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