ورود

View Full Version : سئوال در مورد امكانات فارسي



rezamim
چهارشنبه 02 بهمن 1387, 08:15 صبح
با سلام
دو تا سئوال دارم
1 - چطور متوجه بشيم كه در اين لحظه در حالت ورود اطلاعات بصورت فارسي هستيم يا انگليسي؟
2 - براي مشابه سازي فشرده شدن كليدهاي Ctrl + left Shift و Ctrl + right Shift از چه كدي بايد استفاده كنيم؟
با تشكر

binyaz2003
جمعه 04 بهمن 1387, 10:14 صبح
سلام
براي سئوال اولتون لينک زير رو ببينيد.ساده است و نيازي هم به structure نداره :
http://support.microsoft.com/kb/278957

binyaz2003
جمعه 04 بهمن 1387, 10:45 صبح
براي سئوال دوم هم اون کدي داشتيد که فقط کد کليدها توش مجهول بود با مشخصات زير تست کنيد :
VK_LSHIFT 0xA0 Left SHIFT
VK_RSHIFT 0xA1 Right SHIFT
VK_LCONTROL 0xA2 Left CTRL
VK_RCONTROL 0xA3 Right CTRL

منبع : http://msdn.microsoft.com/en-us/library/ms927178.aspx

rezamim
جمعه 04 بهمن 1387, 17:02 عصر
اينم راه حل بهتري كه آقاي Cetin Basoz در سايت UniversalThread دادند.


#Define HKL_PREV 0
#Define HKL_NEXT 1
Declare Integer ActivateKeyboardLayout In win32API ;
integer hkl, Integer Flags
Declare Integer GetKeyboardLayoutName In WIN32API String @ pwszKLID
Declare Long LoadKeyboardLayout In User32 String pwszKLID, Integer Flags
Declare Integer GetKeyboardLayout In WIN32API Integer idThread

If Bitand(GetKeyboardLayout(0), 0xFFFF) = 0x409
? 'English layout'
Endif

lcLayoutName = Space(256)
GetKeyboardLayoutName(@lcLayoutName)
If right(Strextract(m.lcLayoutName,'',Chr(0)),4) = '0409'
? 'English layout'
Endif

If .F. && switch to next in chain - alt + lshift
ActivateKeyboardLayout(HKL_NEXT,0)
Endif

If .F. && load if not loaded and switch to given - FA
LoadKeyboardLayout("00000429",1)
Endif