معرفة اللغة المستعملة في لوحة المفاتيح
#1
السلام عليكم
عندي سؤال حول كيفية معرفة اللغة الحالية للوحة المفاتيح هل هي عربية أو فرنسية أو انجليزية
حسب اللغات المثبتة في الجهاز
وشكرا
الرد
#2
وعليكم السلام ورحمة الله,,

اخي الكريم,, الإجآبة عن سؤآلك 100% ليست لدي اي فكرة عنه,,

لكن اتذكر ان احد الإخوة كان كتب موضوع عن ذلك,, من هنا الموضوع,,

لعل هذا الرآبط يفيدك والله اعلم,,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#3
شكرا لك أخ شكرا لك اخ al-mob4rm3g
انا لا**** تغيير اللغة بل معرفة اللغة الحالية للوحة المفاتيح هل هي عربية أو فرنسية أو انجليزية او او..
اما بالنسبة لتغيير اللغة فهي كما في الرابط الذي أرسلتهن، ولاتوجد مشكلة معها
انا في انتظار الجديد
وشـــــــــــــــــكرا
الرد
#4
وعليكم السلام
أقرأ الدالة:
كود :
function GetWindowsLanguage: string; var WinLanguage: array [0..50] of char; begin VerLanguageName(GetSystemDefaultLangID, WinLanguage, 50); Result := StrPas(WinLanguage); end;
ولتغيير اللغة:
كود :
LoadKeyboardLayout('00000401',klf_activate); //for arabe LoadKeyboardLayout('00000409',klf_activate); //for anglais LoadKeyboardLayout('0000040C',klf_activate); //for français
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#5
سلام
GetSystemDefaultLangID تعطيك فقط اللغة التي يستخدمها النظام
وانا أبحث عن اللغة التي تستخدمها لوحة المفاتيح
وشكرا
الرد
#6
السلام عليكم و رحمة الله
إليك الحل الآتي أخي العزيز
تفضل الكود
كود :
procedure TForm1.Button1Click(Sender: TObject); var lang : string ; P : array[0..KL_NAMELENGTH-1] of char ; begin GetKeyboardLayoutName(P); lang:=P; if lang='00000401'then label1.caption:='Arabe' else if lang='0000040C'then label1.caption:='Français'; end;
مع ملاحظة أن قيمة المتغير lang سوف تأخذ قيمة من نوع هيكس و لكل لغة في لوحة المفاتيح لها قيمتها الخاصة في الهكس و هذه قائمة لقيم هكس لعدة لغات للوحة المفاتيح
PHP كود :
00000436:   'Afrikaans'                     //Afrikaans (1)

  
0000041C:   'Albanian'                      //Albanais

  
00000401:   'Arabic Saudi Arabia'           //Arabe Arabie Saoudite

  
00000801:   'Arabic Iraq'                   //Arabe Irak

  
00000C01:   'Arabic Egypt'                  //Arabe Egypte

  
00001001:   'Arabic Libya'                  //Arabe Libye

  
00001401:   'Arabic Algeria'                 //Arabe Algerie

  
00001801:   'Arabic Morocco'                //Arabe Maroc

  
00001C01:   'Arabic Tunisia'                //Arabe Tunisie

  
00002001:   'Arabic Oman'                   //Arabe Oman

  
00002401:   'Arabic Yemen'                  //Arabe Yemen

  
00002801:   'Arabic Syria'                  //Arabe Syrie

  
00002c01:   'Arabic Jordan'                 //Arabe Jordanie

  
00003001:   'Arabic Lebanon'                //Arabe Liban

  
00003401:   'Arabic Kuwait'                 //Arabe Koweit

  
00003801:   'Arabic UAE'                    //Arabe Emirats Arabes Unis

  
00003c01:   'Arabic Bahrain'                //Arabe Bahrein

  
00004001:   'Arabic Qatar'                   //Arabe Qatar

  
0000042b:   'Armenian'                      //Armenien

  
0000042c:   'Azeri Latin'                   //Azeri Latin (2)

  
0000082c:   'Azeri Cyrillic'                //Azeri Cyrillique (2)

  
0000042d:   'Basque'                        //Basque

  
00000423:   'Belarusian'                    //Biélorusse (3)

  
00000402:   'Bulgarian'                     //Bulgare

  
00000403:   'Catalan'                       //Catalan

  
00000404:   'Chinese Taiwan'                //Chinois Taiwan

  
00000804:   'Chinese PRC'                   //Chinois Rép Populaire de Chine

  
00000c04:   'Chinese Hong Kong'             //Chinois Hong Kong

  
00001004:   'Chinese Singapore'             //Chinois Singapour

  
00001404:   'Chinese Macau'                 //Chinois Macao

  
0000041a:   'Croatian'                      //Croate

  
00000405:   'Czech'                         //Tchèque

  
00000406:   'Danish'                        //Danois

  
00000465:   'Divehi'                        //Divehi (4)

  
00000413:   'Dutch Standard'                //Néerlandais Standard

  
00000813:   'Dutch Belgian'                  //Néerlandais Belge

  
00000409:   'English United States'         //Anglais États-Unis

  
00000809:   'English United Kingdom'        //Anglais Royaume-Uni

  
00000c09:   'English Australian'            //Anglais Australie

  
00001009:   'English Canadian'              //Anglais Canada

  
00001409:   'English New Zealand'           //Anglais Nouvelle-Zélande

  
00001809:   'English Ireland'               //Anglais Irlande

  
00001c09:   'English South Africa'          //Anglais Afrique du Sud

  
00002009:   'English Jamaica'               //Anglais Jamaique

  
00002409:   'English Caribbean'             //Anglais Caraïbes

  
00002809:   'English Belize'                //Anglais Belize

  
00002c09:   'English Trinidad'              //Anglais Trinidad

  
00003009:   'English Zimbabwe'              //Anglais Zimbabwe

  
00003409:   'English Philippines'           //Anglais Philippines

  
00000425:   'Estonian'                      //Estonien

  
00000438:   'Faeroese'                      //Faeroese (5)

  
00000429:   'Farsi'                         //Farsi (6)

  
0000040b:   'Finnish'                       //Finnois (7)

  
0000040c:   'French Standard'               //Français Standard

  
0000080c:   'French Belgian'                //Français Belgique

  
00000c0c:   'French Canadian'               //Français Canadien

  
0000100c:   'French Swiss'                  //Français Suisse

  
0000140c:   'French Luxembourg'             //Français Luxembourg

  
0000180c:   'French Monaco'                 //Français Monaco

  
00000437:   'Georgian'                      //Géorgien

  
00000456:   'Galician'                      //Galicien

  
00000407:   'German Standard'               //Allemand Standard

  
00000807:   'German Swiss'                  //Allemand Suisse

  
00000c07:   'German Austrian'                //Allemand Autriche

  
00001007:   'German Luxembourg'             //Allemand Luxembourg

  
00001407:   'German Liechtenstein'          //Allemand Liechtenstein

  
00000408:   'Greek'                         //Grec

  
00000447:   'Gujarati'                       //Gujarati (8)

  
0000040d:   'Hebrew'                        //Hébreu

  
00000439:   'Hindi'                         //Hindi (9)

  
0000040e:   'Hungarian'                     //Hongrie

  
0000040f:   'Icelandic'                     //Islandais

  
00000421:   'Indonesian'                    //Indonésien

  
00000410:   'Italian Standard'              //Italien Standard

  
00000810:   'Italian Swiss'                 //Italien Suisse

  
00000411:   'Japanese'                      //Japonais

  
0000044b:   'Kannada'                       //Kannada (10)

  
0000043f:   'Kazakh'                        //Kazakh (11)

  
00000457:   'Konkani'                        //Konkani (12)

  
00000412:   'Korean'                        //Coréen

  
00000440:   'Kyrgyz'                        //Kirghiz (13)

  
00000426:   'Latvian'                       //Letton (14)

  
00000427:   'Lithuanian'                    //Lituanien

  
0000042f:   'Macedonian'                    //Macédonien

  
0000043e:   'Malay Malaysia'                //Malais Malaisie

  
0000083e:   'Malay Brunei Darussalam'       //Malais Brunei Darussalam

  
0000044e:   'Marathi'                       //Marathi         (15)

  
00000450:   'Mongolian'                     //Mongol

  
00000414:   'Norwegian Bokmal'              //Norvégien Bokmal

  
00000814:   'Norwegian Nynorsk'             //Norvégien Nynorsk

  
00000415:   'Polish'                        //Polonais

  
00000416:   'Portuguese Brazilian'          //Portuguais Brésilien

  
00000816:   'Portuguese Standard'           //Portuguais Standard

  
00000446:   'Punjabi'                       //Pendjabi (16)

  
00000418:   'Romanian'                      //Roumain

  
00000419:   'Russian'                       //Russe

  
0000044f:   'Sanskrit'                      //Sanskrit (17)

  
0000081a:   'Serbian Latin'                 //Serbe Latin

  
00000c1a:   'Serbian Cyrillic'              //Serbe Cyrillique

  
0000041b:   'Slovak'                        //Slovaque

  
00000424:   'Slovenian'                     //Slovène

  
0000040a:   'Spanish Traditional Sort'      //Espagnol Traditionnel

  
0000080a:   'Spanish Mexican'               //Espagnol Mexicain

  
00000c0a:   'Spanish Modern Sort'           //Espagnol Moderne

  
0000100a:   'Spanish Guatemala'             //Espagnol Guatemala

  
0000140a:   'Spanish Costa_Rica'            //Espagnol Costa Rica

  
0000180a:   'Spanish Panama'                //Espagnol Panama

  
00001c0a:   'Spanish Dominican Republic'    //Espagnol Rép Dominicaine

  
0000200a:   'Spanish Venezuela'             //Espagnol Vénézuela

  
0000240a:   'Spanish Colombia'              //Espagnol Colombie

  
0000280a:   'Spanish Peru'                  //Espagnol Pérou

  
00002c0a:   'Spanish Argentina'             //Espagnol Argentine

  
0000300a:   'Spanish Ecuador'               //Espagnol Équateur

  
0000340a:   'Spanish Chile'                 //Espagnol Chili

  
0000380a:   'Spanish Uruguay'               //Espagnol Uruguay

  
00003c0a:   'Spanish Paraguay'              //Espagnol Paraguay

  
0000400a:   'Spanish Bolivia'               //Espagnol Bolivie

  
0000440a:   'Spanish El Salvador'           //Espagnol El Salvador

  
0000480a:   'Spanish Honduras'              //Espagnol Honduras

  
00004c0a:   'Spanish Nicaragua'             //Espagnol Nicaragua

  
0000500a:   'Spanish Puerto Rico'           //Espagnol Porto Rico

  
00000441:   'Swahili'                       //Swahili (18)

  
0000041d:   'Swedish'                       //Suédois

  
0000081d:   'Swedish Finland'               //Suédois Finlande

  
0000045a:   'Syriac'                        //Syriaque (19)

  
00000449:   'Tamil'                         //Tamoul (20)

  
00000444:   'Tatar'                         //Tatar (21)

  
0000044a:   'Telugu'                        //Telugu (22)

  
0000041e:   'Thai'                          //Thaï (23)

  
0000041f:   'Turkish'                       //Turc

  
00000422:   'Ukrainian'                     //Ukrainien

  
00000420:   'Urdu'                           //Ourdou (24)

  
00000443:   'Uzbek Latin'                   //Ouzbek Latin (25)

  
00000843:   'Uzbek Cyrillic'                //Ouzbek Cyrillique (25)

  
0000042a:   'Vietnamese' 

موفق بإذن الله Smile
الرد
#7
للتغيير إلى لوحة مفاتيح معينة وغير ذلك إليك هذا:
كود :
Changer la langue du clavier //Pour changer le langue var Lang: HKL; begin Lang := LoadKeyboardLayout(pcKeyboard, 0); ActivateKeyboardLayout(Lang, KLF_ACTIVATE); if SystemParametersInfo(SPI_SETDEFAULTINPUTLANG,0,@Lang,SPIF_SENDCHANGE) then showmessage('OK ça marche') else showmessage('Non raté !'); //************************************************************************* //Ou directement: LoadKeyboardLayout(pcKeyboard, KLF_ACTIVATE); //Où pcKeyboard est l'une des valeurs suivantes: '00000401' - Arabe '0000040C' - Français '00000409' - Anglais '00000407' - Allemagne //Par exemple: LoadKeyboardLayout('00000401',KLF_ACTIVATE); //pour arabe LoadKeyboardLayout('00000409',KLF_ACTIVATE); //pour anglais LoadKeyboardLayout('0000040C',KLF_ACTIVATE); //pour français {Pour d'autres langues visiter: http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx ou dans le registre: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts } //************************************************************************* //Fonction pour détecter le code de la langue actuelle function GetLayout: string; begin SetLength(Result, KL_NAMELENGTH+1); if not GetKeyBoardLayoutName(PChar(Result)) then Result := 'Error: No layout name read'; end; {************************************************************************* Pour spécifier une langue précise (par exemple: Français Canadienne) Pas de code inconnue comme 409 ou 419.} var kbCOde : LongWord; kbString : Array[0..9] of char; begin //Français Canadienne: kbCode := (SUBLANG_FRENCH_CANADIAN shl 10) or LANG_FRENCH; //Pour Français Standard: //kbCode := (SUBLANG_DEFAULT shl 10) or LANG_FRENCH; //Convertir le code binaire en chaîne String: StrPCopy(kbString, IntToHex(kbCode, 8)); //Pour voir le code: ShowMessage(kbString); //Basculer ver la langue LoadKeyboardLayout(@kbString, KLF_ACTIVATE); end; //Pour les autres langues voir l'unité: windows.pas
معذرة على الفرنسية لمن لا يفهمها.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#8
طريقة أبسط:
PHP كود :
function GetKeyboardLayoutNameStr: string;

begin
  SetLength
(Result, 255);
  
Result :=  GetLocaleStr(GetUserDefaultLangID, LOCALE_SLANGUAGE, '')
end; 
الرد
#9
السلام عليكم
**** تغيير اللغة لعنصر واحد وهو مثلا dbedit5 وdbedit الأخرى تبقى باللغة العربية يعني إذا صار المؤشر في dbedit5 تحول من العربيةإلى الفرنسية.
الرد
#10
وعليكم السلام ورحمة الله وبركاته
استخدم الأحداث OnEnter & OnExit بمثل:
PHP كود :
procedure TForm1.DBEdit2Enter(Sender: TObject);
begin
  LoadKeyboardLayout
('00000401',KLF_ACTIVATE); //Arabic
end;

procedure TForm1.DBEdit2Exit(Sender: TObject);
begin
  LoadKeyboardLayout
('0000040C',KLF_ACTIVATE); //French
end; 
بالتوفيق.
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم