PDA

View Full Version : تغییر زبان صفحه کلید در VB



Rambod
پنج شنبه 07 آبان 1383, 19:52 عصر
سلام
من یه مشکلی دارم. برنامه من فارسیه و کاربر باید اطلاعات رو فارسی بنویسه. برای دسترسی به بعضی قسمتها هم باید کلمه عبور رو وارد کنه. کلمه عبور انگلیسیه. از اونجا که کاربر قبلاً صفحه کلیدش رو فارسی کرده و یادش رفته موقع تایپ کردن پسورد اون رو به انگلیسی برگردونه، همش پیغام خطای پسورد اشتباه است رو دریافت میکنه.
حالا من نمیتونم وقتی میخوام از کاربر پسورد بگیرم خودم اتوماتیک صفحه کلید رو انگلیسی کنم؟
خیلی ممنون

Payam Moradi
پنج شنبه 07 آبان 1383, 21:42 عصر
من یک کد بهت میدم که اگه صفحه کلید هر چی باشه به همون زبان که دوست داری تبدیل میکنه.
این کدها رو در یک ماژول در قسمت Declarations قرار بده :


Const LANG_FA_IR As String = "00000429" 'FA_IR
Const LANG_EN_US As String = "00000409" 'EN_US
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As Long

این تابع رو هم زیرش قرار بده یعنی قسمت (General) :


Public Sub SetKeyboardLanguage(lID As String)
Const KLF_ACTIVATE = &H1
LoadKeyboardLayout strlID, KLF_ACTIVATE
End Sub

حالا در آرگومان تابع به جای LID ثابت LANG_FA_IR که معادل 00000429 است قرار بدی و تابع SetKeyboardLanguage رو فراخوانی کنی صفحه کلید فارسی میشه. به شرط اینکه ویندوز فارسی رو ساپورت کنه. حالا اگه به جای LID ثابت LANG_EN_US که معادل 00000409 است قرار بدی و تابع رو فراخوانی کنی صفحه کلید انگلیسی میشه. بازم به شرط اینکه انگلیسی رو پشتیبانی کنه.

موفق باشید :flower:

Rambod
جمعه 08 آبان 1383, 00:43 صبح
مرسی :تشویق: :موفق:

Payam Moradi
جمعه 08 آبان 1383, 09:31 صبح
قابل رفیق ما رو نداشت. :wink:

پیروز باشی :flower:

کم حوصله
جمعه 08 آبان 1383, 23:13 عصر
در آرگومان تابع به جای LID ثابت LANG_FA_IR که معادل 00000429 است قرار بدی و تابع SetKeyboardLanguage رو فراخوانی کنی صفحه کلید فارسی میشه

فکر کنم اگر این کد را در ویندوز 98 اجرا کنید باید به جای " 00000429 " این کد را بدهید " 00000401 "

Rambod
شنبه 09 آبان 1383, 00:02 صبح
اصلاً برای من فارسی کردن مهم نبود! من فقط میخواستم انگلیسی کنم که مشکلم حل شد :wink3:

MM_Mofidi
چهارشنبه 13 آبان 1383, 15:14 عصر
لیست مقادیر LID برای زبانهای مختلف را از کجا بگیرم؟

Payam Moradi
چهارشنبه 13 آبان 1383, 15:43 عصر
لیست مقادیر LID برای زبانهای مختلف را از کجا بگیرم؟

بابا بی خیال ما که همین فارسی ش هم به زور راه میندازیم. :mrgreen: :wink:

binyaz2003
چهارشنبه 13 آبان 1383, 15:51 عصر
ت مقادیر LID برای زبانهای مختلف را از کجا بگیرم؟
msdn 2000

MM_Mofidi
پنج شنبه 14 آبان 1383, 16:06 عصر
آدرس دقیق لطفا پیدا نکردم

vahidehrafati
چهارشنبه 01 تیر 1384, 10:29 صبح
من یک کد بهت میدم که اگه صفحه کلید هر چی باشه به همون زبان که دوست داری تبدیل میکنه.
این کدها رو در یک ماژول در قسمت Declarations قرار بده :


Const LANG_FA_IR As String = "00000429" 'FA_IR
Const LANG_EN_US As String = "00000409" 'EN_US
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As Long

این تابع رو هم زیرش قرار بده یعنی قسمت (General) :


Public Sub SetKeyboardLanguage(lID As String)
Const KLF_ACTIVATE = &H1
LoadKeyboardLayout strlID, KLF_ACTIVATE
End Sub

حالا در آرگومان تابع به جای LID ثابت LANG_FA_IR که معادل 00000429 است قرار بدی و تابع SetKeyboardLanguage رو فراخوانی کنی صفحه کلید فارسی میشه. به شرط اینکه ویندوز فارسی رو ساپورت کنه. حالا اگه به جای LID ثابت LANG_EN_US که معادل 00000409 است قرار بدی و تابع رو فراخوانی کنی صفحه کلید انگلیسی میشه. بازم به شرط اینکه انگلیسی رو پشتیبانی کنه.

موفق باشید :flower:


سلام

ببخشید من نیاز به تابعی دارم که با فراخوانی آن صفحه کلید فارسی و انگلیسی شود .تابع شما را کپی کردم زبان انگلیسی را ست می کند اما در مورد ست کردن زبان فارسی صفحه کلید جواب نگرفتم با اینکه در ویندوز XPکار می کنم و فارسی هم روی سیستم نصب شده

اگر کمکم کنید ممنون می شم

Alirezagoodarzi
چهارشنبه 01 تیر 1384, 11:49 صبح
آقای مفیدی این هم فرایش شما

Primary Language IDs
Language Primary Language ID
Neutral 0x00
Afrikaans 0x36
Albanian 0x1C
Arabic 0x01
Basque 0x2D
Bulgarian 0x02
Byelorussian 0x23
Catalan 0x03
Chinese 0x04
Czech 0x05
Danish 0x06
Dutch 0x13
English 0x09
Estonian 0x25
Faeroese 0x38
Farsi 0x29
Finnish 0x0B
French 0x0C
German 0x07
Greek 0x08
Hebrew 0x0D
Hungarian 0x0E
Icelandic 0x0F
Indonesian 0x21
Italian 0x10
Japanese 0x11
Kampuchean 0x2C
Korean 0x12
Laotian 0x2B
Latvian 0x26
Lithuanian 0x27
Macedonian 0x2F
Maltese 0x3A
Maori 0x28
Norwegian 0x14
Polish 0x15
Portuguese 0x16
Rhaeto-Romanic 0x17
Romanian 0x18
Russian 0x19
Sami 0x3B
Scots Gaelic 0x3C
Serbo-Croatian* 0x1A
Slovak 0x1B
Slovenian 0x24
Sorbian 0x2E
Spanish 0x0A
Sutu 0x30
Swedish 0x1D
Thai 0x1E
Tsonga 0x31
Tswana 0x32
Turkish 0x1F
Ukrainian 0x22
Urdu 0x20
Venda 0x33
Vietnamese 0x2A
Xhosa 0x34
Zulu 0x35

Alirezagoodarzi
چهارشنبه 01 تیر 1384, 11:55 صبح
این هم یک لیست خیلی کامل

It is sometimes necessary to know the primary language and locale name and the corresponding locale ID (LCID) and its three-letter abbreviation. The following table lists the available locales. When new locales become available, this list will be updated.

Primary Language Locale Name LCID
Afrikaans Afrikaans (0436; AFK)
Albanian Albanian (041c; SQI)
Arabic Arabic (Saudi Arabia) (0401; ARA)
Arabic Arabic (Iraq) (0801; ARI)
Arabic Arabic (Egypt) (0C01; ARE)
Arabic Arabic (Libya) (1001; ARL)
Arabic Arabic (Algeria) (1401; ARG)
Arabic Arabic (Morocco) (1801; ARM)
Arabic Arabic (Tunisia) (1C01; ART)
Arabic Arabic (Oman) (2001; ARO)
Arabic Arabic (Yemen) (2401; ARY)
Arabic Arabic (Syria) (2801; ARS)
Arabic Arabic (Jordan) (2C01; ARJ)
Arabic Arabic (Lebanon) (3001; ARB)
Arabic Arabic (Kuwait) (3401; ARK)
Arabic Arabic (U.A.E.) (3801; ARU)
Arabic Arabic (Bahrain) (3C01; ARH)
Arabic Arabic (Qatar) (4001; ARQ)
Armenian Armenian (042b; HYE)
Assamese Assamese (044d; ASM)
Azeri Azeri (Latin) (042c; AZE)
Azeri Azeri (Cyrillic) (082c; AZC)
Basque Basque (042D; EUQ)
Belarussian Belarussian (0423, BEL)
Bengali Bengali (0445; BEN)
Bulgarian Bulgarian (0402, BGR)
Catalan Catalan (0403; CAT)
Chinese Chinese (Taiwan) (0404; CHT)
Chinese Chinese (PRC) (0804; CHS)
Chinese Chinese (Hong Kong) (0C04; ZHH)
Chinese Chinese (Singapore) (1004; ZHI)
Chinese Chinese (Macau) (1404; ZHM)
Croatian Croatian (041a; HRV)
Czech Czech (0405; CSY)
Danish Danish (0406; DAN)
Dutch Dutch (Netherlands) (0413; NLD)
Dutch Dutch (Belgium) (0813; NLB)
English English (United States) (0409; ENU)
English English (United Kingdom) (0809; ENG)
English English (Australia) (0c09; ENA)
English English (Canada) (1009; ENC)
English English (New Zealand) (1409; ENZ)
English English (Ireland) (1809; ENI)
English English (South Africa) (1c09; ENS)
English English (Jamaica) (2009; ENJ)
English English (Caribbean) (2409; ENB)
English English (Belize) (2809; ENL)
English English (Trinidad) (2c09; ENT)
English English (Zimbabwe) (3009; ENW)
English English (Philippines) (3409; ENP)
Estonian Estonian (0425, ETI)
Faeroese Faeroese (0438, FOS)
Farsi Farsi (0429; FAR)
Finnish Finnish (040b; FIN)
French French (France) (040c; FRA)
French French (Belgium) (080c; FRB)
French French (Canada) (0c0c; FRC)
French French (Switzerland) (100c; FRS)
French French (Luxembourg) (140c; FRL)
French French (Monaco) (180c; FRM)
Georgian Georgian (0437; KAT)
German German (Germany) (0407; DEU)
German German (Switzerland) (0807; DES)
German German (Austria) (0c07; DEA)
German German (Luxembourg) (1007; DEL)
German German (Liechtenstein) (1407; DEC)
Greek Greek (0408; ELL)
Gujarati Gujarati (0447; GUJ)
Hebrew Hebrew (040D; HEB)
Hindi Hindi (0439; HIN)
Hungarian Hungarian (040e; HUN)
Icelandic Icelandic (040F; ISL)
Indonesian Indonesian (0421; IND)
Italian Italian (Italy) (0410; ITA)
Italian Italian (Switzerland) (0810; ITS)
Japanese Japanese (0411; JPN)
Kannada Kannada (044b; KAN)
Kashmiri Kashmiri (India) (0860; KAI)
Kazakh Kazakh (043f; KAZ)
Konkani Konkani (0457; KOK)
Korean Korean (0412; KOR)
Korean Korean (Johab) (0812; KOJ)
Latvian Latvian (0426, LVI)
Lithuanian Lithuanian (0427, LTH)
Lithuanian Lithuanian (Classic) (0827, LTH)
Macedonian Macedonian (042f; MKD)
Malay Malaysian (043e;MSL)
Malay Malay Brunei Darussalam (083e;MSB)
Malayalam Malayalam (044c; MAL)
Marathi Marathi (044e; MAR)
Nepali Nepali (Nepal) (0461; NEP)
Nepali Nepali (India) (0861; NEI)
Norwegian Norwegian (Bokmal) (0414; NOR)
Norwegian Norwegian (Nynorsk) (0814; NON)
Oriya Oriya (0448; ORI)
Polish Polish (0415; PLK)
Portuguese Portuguese (Brazil) (0416; PTB)
Portuguese Portuguese (Portugal) (0816; PTG)
Punjabi Punjabi (0446; PAN)
Rhaeto-Romanic Rhaeto-Romanic (0417; RMS)
Romanian Romanian (0418, ROM)
Romanian Romanian (Moldova) (0818, ROV)
Russian Russian (0419; RUS)
Russian Russian (Moldova) (0819, RUM)
Sami Sami (Lappish) (043b; SZI)
Sanskrit Sanskrit (044f; SAN)
Serbian Serbian (Cyrillic) (0c1a; SRB)
Serbian Serbian (Latin) (081a; SRL)
Sindhi Sindhi (0459; SND)
Slovak Slovak (041b; SKY)
Slovenian Slovenian (0424, SLV)
Sorbian Sorbian (042e, SBN)
Spanish Spanish (Spain - Traditional Sort) (040a; ESP)
Spanish Spanish (Mexico) (080a; ESM)
Spanish Spanish (Spain - Modern Sort) (0c0a; ESN)
Spanish Spanish (Guatemala) (100a; ESG)
Spanish Spanish (Costa Rica) (140a; ESC)
Spanish Spanish (Panama) (180a; ESA)
Spanish Spanish (Dominican Republic) (1c0a; ESD)
Spanish Spanish (Venezuela) (200a; ESV)
Spanish Spanish (Colombia) (240a; ESO)
Spanish Spanish (Peru) (280a; ESR)
Spanish Spanish (Argentina) (2c0a; ESS)
Spanish Spanish (Ecuador) (300a; ESF)
Spanish Spanish (Chile) (340a; ESL)
Spanish Spanish (Uruguay) (380a; ESY)
Spanish Spanish (Paraguay) (3c0a; ESZ)
Spanish Spanish (Bolivia) (400a; ESB)
Spanish Spanish (El Salvador) (440a; ESE)
Spanish Spanish (Honduras) (480a; ESH)
Spanish Spanish (Nicaragua) (4c0a; ESI)
Spanish Spanish (Puerto Rico) (500a; ESU
Sutu Sutu (0430; SXT)
Swahili Swahili (Kenya) (0441; SWK)
Swedish Swedish (041D; SVE)
Swedish Swedish (Finland) (081d; SVF)
Tamil Tamil (0449; TAM)
Tatar Tatar (Tatarstan) (0444; TAT)
Telugu Telugu (044a; TEL)
Thai Thai (041E; THA)
Tsonga Tsonga (0431; TSG)
Tswana Tswana (0432; TNA)
Turkish Turkish (041f; TRK)
Ukrainian Ukrainian (0422, UKR)
Urdu Urdu (Pakistan) (0420; URD)
Urdu Urdu (India) (0820; URI)
Uzbek Uzbek (Latin) (0443; UZB)
Uzbek Uzbek (Cyrillic) (0843; UZC)
Venda Venda (0433; VEN)
Vietnamese Vietnamese (042a; VIT)
Xhosa Xhosa (0434; XHS)
Yiddish Yiddish (043d; JII)
Zulu Zulu (0435; ZUL)

Alirezagoodarzi
چهارشنبه 01 تیر 1384, 11:58 صبح
جناب مفیدی این آخرین تیر ترکش

This list was compiled in July 1997. Check the Microsoft Developer's Network for changes to supported locales for Windows. Microsoft SQL Server 6.5 does not support locales marked with an asterisk.
Country/region Language LCID ANSI CP OEM CP LANG ID
Albania Albanian 041c 1250 720 SQI
Algeria Arabic 1401 1256 720 ARG
Argentina Spanish 2c0a 1252 720 ESS
Australia English 0c09 1252 720 ENA
Austria German 0c07 1252 720 DEA
Bahrain Arabic 3c01 1256 720 ARH
Belarus Belarusian 0423 1251 720 BEL
Belgium Dutch 0813 1252 720 NLB
Belgium French 080c 1252 720 FRB
Belize English 2809 1252 720 ENL
Bolivia Spanish 400a 1252 720 ESB
Brazil Portuguese 0416 1252 720 PTB
Brunei Darussalam Malay 083e 1252 720 MSB
Bulgaria Bulgarian 0402 1251 720 BGR
Canada English 1009 1252 720 ENC
Canada French 0c0c 1252 720 FRC
Caribbean English 2409 1252 866 ENB
Chile Spanish 340a 1252 850 ESL
Colombia Spanish 240a 1252 950 ESO
Costa Rica Spanish 140a 1252 936 ESC
Croatia Croatian 041a 1250 936 HRV
Czech Republic Czech 0405 1250 936 CSY
Denmark Danish 0406 1252 950 DAN
Dominican Republic Spanish 1c0a 1252 852 ESD
Ecuador Spanish 300a 1252 850 ESF
Egypt Arabic 0c01 1256 850 ARE
El Salvador Spanish 440a 1252 850 ESE
Estonia Estonian 0425 1257 850 ETI
Faeroe Islands Faeroese 0438 1252 850 FOS
Finland Finnish 040b 1252 850 FIN
Finland Swedish 081d 1252 737 SVF
France French 040c 1252 437 FRA
Germany German 0407 1252 850 DEU
Greece Greek 0408 1253 850 ELL
Guatemala Spanish 100a 1252 850 ESG
Honduras Spanish 480a 1252 850 ESH
Hong Kong Chinese 0c04 936 850 ZHH
Hungary Hungarian 040e 1250 437 HUN
Iceland Icelandic 040f 1252 850 ISL
India Hindi 0439 1252 850 HIN
Indonesia Indonesian 0421 1252 850 IND
Iran Farsi 0429 1256 850 FAR
Iraq Arabic 0801 1256 437 ARI
Ireland English 1809 1252 437 ENI
Israel Hebrew 040d 1255 850 HEB
Italy Italian 0410 1252 850 ITA
Jamaica English 2009 1252 850 ENJ
Japan Japanese 0411 932 850 JPN
Jordan Arabic 2c01 1256 850 ARJ
Kenya Swahili 0441 1252 850 SWK
Korea Korean(Ext. Wansung) 0412 949 850 KOR
Korea* Korean(Johab)* 0812 1361 850 KOJ
Kuwait Arabic 3401 1256 850 ARK
Latvia Latvian 0426 1257 850 LVI
Lebanon Arabic 3001 1256 850 ARB
Libya Arabic 1001 1256 850 ARL
Liechtenstein German 1407 1252 850 DEC
Lithuania Classic Lithuanian 0827 1257 850 LTC
Lithuania Lithuanian 0427 1257 850 LTH
Luxembourg French 140c 1252 850 FRL
Luxembourg German 1007 1252 850 DEL
Macau Chinese 1404 950 850 ZHM
Macedonia Macedonian 042f 1251 850 MKI
Malaysia Malay 043e 1252 850 MSL
Mexico Spanish 080a 1252 850 ESM
Monaco French 180c 1252 850 FRM
Morocco Arabic 1801 1256 850 ARM
Netherlands Dutch 0413 1252 850 NLD
New Zealand English 1409 1252 850 ENZ
Nicaragua Spanish 4c0a 1252 850 ESI
Norway (Bokmål) Norwegian 0414 1252 850 NOR
Norway (Nynorsk) Norwegian 0814 1252 862 NON
Oman Arabic 2001 1256 852 ARO
Pakistan Urdu 0420 1252 850 URP
Panama Spanish 180a 1252 850 ESA
Paraguay Spanish 3c0a 1252 850 ESZ
Peru Spanish 280a 1252 932 ESR
Philippines English 3409 1252 949 ENP
Poland Polish 0415 1250 1361 PLK
Portugal Portuguese 0816 1252 850 PTG
PRC Chinese 0804 936 850 CHS
Puerto Rico Spanish 500a 1252 850 ESU
Qatar Arabic 4001 1256 850 ARQ
Romania Romanian 0418 1250 852 ROM
Russia Russian 0419 1251 850 RUS
Saudi Arabia Arabic 0401 1256 850 ARA
Serbia (Cyrillic) Serbian 0c1a 1251 852 SRB
Serbia (Latin) Serbian 081a 1250 866 SRL
Singapore Chinese 1004 936 852 ZHI
Slovakia Slovak 041b 1250 852 SKY
Slovenia Slovene 0424 1250 855 SLV
South Africa English 1c09 1252 852 ENS
South Africa Afrikaans 0436 1252 852 AFK
Spain Basque 042d 1252 850 EUQ
Spain Catalan 0403 1252 850 CAT
Spain (Mod. Sort) Spanish 0c0a 1252 874 ESN
Spain (Trad. Sort) Spanish 040a 1252 857 ESP
Sweden Swedish 041d 1252 437 SVE
Switzerland French 100c 1252 850 FRS
Switzerland German 0807 1252 866 DES
Switzerland Italian 0810 1252 866 ITS
Syria Arabic 2801 1256 852 ARS
Taiwan Chinese 0404 950 775 CHT
Thailand* Thai 041e 874 775 THA
Trinidad English 2c09 1252 775 ENT
Tunisia Arabic 1c01 1256 775 ART
Turkey Turkish 041f 1254 720 TRK
U.A.E. Arabic 3801 1256 1258 ARU
Ukraine Ukrainian 0422 1251 850 UKR
United Kingdom English 0809 1252 866 ENG
United States English 0409 1252 850 ENU
Uruguay Spanish 380a 1252 850 ESY
Venezuela Spanish 200a 1252 437 ESV
Viet Nam* Vietnamese* 042a 1258 850 VIT
Yemen Arabic 2401 1256 850 ARY
Zimbabwe English 3009 1252 437 ENW

vahidehrafati
چهارشنبه 01 تیر 1384, 12:05 عصر
سلام

چرا من نتونستم صفحه کلید رو فارسی کنم

اما انگلیسیش درست شد

ویندوزم xp هست و فارسی هم نصب است

ممنون

بابک زواری
چهارشنبه 01 تیر 1384, 14:42 عصر
بابا دستت درد نکنه آقای گودرزی
:flower: چه میکنه این علیرضا گودرزی :flower:

Alirezagoodarzi
چهارشنبه 01 تیر 1384, 16:04 عصر
:موفق:

hengamh_vb
یک شنبه 21 خرداد 1385, 08:21 صبح
مرسی:تشویق:

vb_nima
یک شنبه 21 خرداد 1385, 23:14 عصر
ببین همه چیزهای بالا درسته فقط تو میتونی روی رویداد gotfocus اون تکست باکسی که میخوای توش پسورد بنویسی زبان را انگلیسی کنی و در رویداد کلیک کلید ت یا رویداد lostfocus همون تکست زبان را دوباره به فارسی تبدیل کنی

anp2001
سه شنبه 19 شهریور 1387, 00:30 صبح
با سلام آقا من کد شما رو امتحان کردم انگلیسی میشه ولی فارسی نمیشه
یعنی در یه تکست باکس روی فرایند gotfocus انگلیسی میشه ولی روی تکست باکس بعدی فارسی نمیشه

xxxxx_xxxxx
سه شنبه 19 شهریور 1387, 00:46 صبح
سلام جناب anp2001 به تاریخ تاپیک و پست ها نگاهی بیندازید این افراد دیگه حضور ندارند.

راستی برای تشکر فقط از دکمه تشکر باید اتفاده کرد در غیر این صورت پست شما حذف میشه.

بهتره به این تاپیک هم سری بزنید:

http://barnamenevis.org/forum/showthread.php?t=102664

Mbt925
سه شنبه 19 شهریور 1387, 21:16 عصر
نمونه ی ساده و کامل: