|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
GETKEYBOARDLANGUAGE : CONNAÎTRE LA LANGUE DU CLAVIER DE L'UTILISATEUR
Information sur la source
Description
Ces deux fonctions sont utiles pour savoir dans quelle langue est paramétré le clavier de l'utilisateur final de notre programme. Ce code peut être adapté pour déterminer si un clavier est "azerty" ou "qwerty", mais attention, un clavier "qwerty" n'est pas forcément un clavier anglophone (mais on déborde du cadre que je me suis fixé). Voilà, c'est aussi une incitation à voyager, ne trouvez-vous pas ? Quand on pense que dans le monde, quelque part, quelqu'un dont on ne sait même pas que sa langue existe, bouffe du Microsoft, hein, ça rend songeur... Ce qui est frustrant, c'est que je ne dispose que d'un clavier français standard, et que je n'ai pu tester chaque possibilité. Bien sûr, j'aurais pu le faire en changeant le paramétrage de mon clavier pour chaque cas, mais je n'ai pas eu ce courage. Je le ferai pourtant, mais plus tard, et ce sera un prétexte pour envoyer un code à ce sujet (s'il n'existe pas déjà sur Delphifr). Un TEdit et un TButton suffisent pour tester le code, sinon tout est dans le zip, avec quelques commentaires.
Source
function HexToInt(Hex: String): Integer;
var
z: Integer;
x: Integer;
v: Integer;
p: Integer;
b: Variant;
h: Integer;
n: Integer;
begin
Hex := UpperCase(Hex);
x := Length(Hex);
v := x;
p := 0;
n := 0;
b := 0;
while v >= 1 do
begin
z := Ord(Hex[v]);
case z of
48: h := 0;
49: h := 1;
50: h := 2;
51: h := 3;
52: h := 4;
53: h := 5;
54: h := 6;
55: h := 7;
56: h := 8;
57: h := 9;
65: h := 10;
66: h := 11;
67: h := 12;
68: h := 13;
69: h := 14;
70: h := 15;
end;
b := exp(p * ln(16)) * h;
p := p + 1;
v := v - 1;
n := n + b;
end;
Result := n;
end;
function GetKeyBoardLanguage: String; // Retourne le langage du clavier
var
P: PChar;
begin
Result := 'Indéterminé';
if GetKeyboardLayoutName(P) then
Case HexToInt(P) of
$00000436: Result := 'Afrikaans';
$0000041c: Result := 'Albanian';
$00000401: Result := 'Arabic Saudi Arabia';
$00000801: Result := 'Arabic Iraq';
$00000c01: Result := 'Arabic Egypt';
$00001001: Result := 'Arabic Libya';
$00001401: Result := 'Arabic Algeria';
$00001801: Result := 'Arabic Morocco';
$00001c01: Result := 'Arabic Tunisia';
$00002001: Result := 'Arabic Oman';
$00002401: Result := 'Arabic Yemen';
$00002801: Result := 'Arabic Syria';
$00002c01: Result := 'Arabic Jordan';
$00003001: Result := 'Arabic Lebanon';
$00003401: Result := 'Arabic Kuwait';
$00003801: Result := 'Arabic UAE';
$00003c01: Result := 'Arabic Bahrain';
$00004001: Result := 'Arabic Qatar';
$0000042b: Result := 'Armenian';
$0000042c: Result := 'Azeri Latin';
$0000082c: Result := 'Azeri Cyrillic';
$0000042d: Result := 'Basque';
$00000423: Result := 'Belarusian';
$00000402: Result := 'Bulgarian';
$00000403: Result := 'Catalan';
$00000404: Result := 'Chinese Taiwan';
$00000804: Result := 'Chinese PRC';
$00000c04: Result := 'Chinese Hong Kong';
$00001004: Result := 'Chinese Singapore';
$00001404: Result := 'Chinese Macau';
$0000041a: Result := 'Croatian';
$00000405: Result := 'Czech';
$00000406: Result := 'Danish';
$00000465: Result := 'Divehi';
$00000413: Result := 'Dutch Standard';
$00000813: Result := 'Dutch Belgian';
$00000409: Result := 'English United States';
$00000809: Result := 'English United Kingdom';
$00000c09: Result := 'English Australian';
$00001009: Result := 'English Canadian';
$00001409: Result := 'English New Zealand';
$00001809: Result := 'English Ireland';
$00001c09: Result := 'English South Africa';
$00002009: Result := 'English Jamaica';
$00002409: Result := 'English Caribbean';
$00002809: Result := 'English Belize';
$00002c09: Result := 'English Trinidad';
$00003009: Result := 'English Zimbabwe';
$00003409: Result := 'English Philippines';
$00000425: Result := 'Estonian';
$00000438: Result := 'Faeroese';
$00000429: Result := 'Farsi';
$0000040b: Result := 'Finnish';
$0000040c: Result := 'French Standard';
$0000080c: Result := 'French Belgian';
$00000c0c: Result := 'French Canadian';
$0000100c: Result := 'French Swiss';
$0000140c: Result := 'French Luxembourg';
$0000180c: Result := 'French Monaco';
$00000437: Result := 'Georgian';
$00000456: Result := 'Galician';
$00000407: Result := 'German Standard';
$00000807: Result := 'German Swiss';
$00000c07: Result := 'German Austrian';
$00001007: Result := 'German Luxembourg';
$00001407: Result := 'German Liechtenstein';
$00000408: Result := 'Greek';
$00000447: Result := 'Gujarati';
$0000040d: Result := 'Hebrew';
$00000439: Result := 'Hindi';
$0000040e: Result := 'Hungarian';
$0000040f: Result := 'Icelandic';
$00000421: Result := 'Indonesian';
$00000410: Result := 'Italian Standard';
$00000810: Result := 'Italian Swiss';
$00000411: Result := 'Japanese';
$0000044b: Result := 'Kannada';
$0000043f: Result := 'Kazakh';
$00000457: Result := 'Konkani';
$00000412: Result := 'Korean';
$00000440: Result := 'Kyrgyz';
$00000426: Result := 'Latvian';
$00000427: Result := 'Lithuanian';
$0000042f: Result := 'Macedonian';
$0000043e: Result := 'Malay Malaysia';
$0000083e: Result := 'Malay Brunei Darussalam';
$0000044e: Result := 'Marathi';
$00000450: Result := 'Mongolian';
$00000414: Result := 'Norwegian Bokmal';
$00000814: Result := 'Norwegian Nynorsk';
$00000415: Result := 'Polish';
$00000416: Result := 'Portuguese Brazilian';
$00000816: Result := 'Portuguese Standard';
$00000446: Result := 'Punjabi';
$00000418: Result := 'Romanian';
$00000419: Result := 'Russian';
$0000044f: Result := 'Sanskrit';
$0000081a: Result := 'Serbian Latin';
$00000c1a: Result := 'Serbian Cyrillic';
$0000041b: Result := 'Slovak';
$00000424: Result := 'Slovenian';
$0000040a: Result := 'Spanish Traditional Sort';
$0000080a: Result := 'Spanish Mexican';
$00000c0a: Result := 'Spanish Modern Sort';
$0000100a: Result := 'Spanish Guatemala';
$0000140a: Result := 'Spanish Costa_Rica';
$0000180a: Result := 'Spanish Panama';
$00001c0a: Result := 'Spanish Dominican Republic';
$0000200a: Result := 'Spanish Venezuela';
$0000240a: Result := 'Spanish Colombia';
$0000280a: Result := 'Spanish Peru';
$00002c0a: Result := 'Spanish Argentina';
$0000300a: Result := 'Spanish Ecuador';
$0000340a: Result := 'Spanish Chile';
$0000380a: Result := 'Spanish Uruguay';
$00003c0a: Result := 'Spanish Paraguay';
$0000400a: Result := 'Spanish Bolivia';
$0000440a: Result := 'Spanish El Salvador';
$0000480a: Result := 'Spanish Honduras';
$00004c0a: Result := 'Spanish Nicaragua';
$0000500a: Result := 'Spanish Puerto Rico';
$00000441: Result := 'Swahili';
$0000041d: Result := 'Swedish';
$0000081d: Result := 'Swedish Finland';
$0000045a: Result := 'Syriac';
$00000449: Result := 'Tamil';
$00000444: Result := 'Tatar';
$0000044a: Result := 'Telugu';
$0000041e: Result := 'Thai';
$0000041f: Result := 'Turkish';
$00000422: Result := 'Ukrainian';
$00000420: Result := 'Urdu';
$00000443: Result := 'Uzbek Latin';
$00000843: Result := 'Uzbek Cyrillic';
$0000042a: Result := 'Vietnamese';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := GetKeyBoardLanguage;
end;
Conclusion
Compilable dès Delphi 4. Ceux qui ont un clavier autre que Français standard pourraient-ils nous confirmer que le code fonctionne correctement ? Soit ici, soit en me passant un message sur le site.
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Edit et la langue clavier [ par ahmed12 ]
Salut tout le mondeje voudrais savoir comment je peux changer la langue de clavier quand je positionne sur un edit pour povoire écrire en L'angler
Question sur un clavier visuel [ par urusei ]
Bonjour, j'en suis au travail à développer un clavier visuel pour les écran tactiles que l'on trouve dans le points de vente à gr
Changer la langue du clavier [ par JulioDelphi ]
Hello,je désire changer la langue du clavier, mais pas seulement dans mon aplication Delphi, mais pour le PC (meme apres la fermeture de mon appli)j'a
Lancer une application dans une langue autre que windows [ par furax13 ]
bonjour,j'ai une application delphi qui peut être activée soit en français, soit en anglais soit en allemand.J'ai un fichier monAppli.e
MessageDlg : boutons en anglais [ par TkILLA ]
Bonjour,je développe sous delphi 2005, version anglaise (l'IDE est en anglais). Je voudrais afficher une boite de dialogue 'voulez-vous enregistr
Problème langue des raccourcis claviers [ par bentheater ]
Bonjour à tousJe travaille sur la gestion des raccourcis claviers de mon softet j'ai un problème de langue. En effet, les rac
Emulation clavier ou souris avec gamepad sous VB6 [ par Ericg60 ]
Bonjour a tous voila je suis débutant et je voudrais savoir comment faire pour se servir d'un gamepadpour pouvoir se déplacer dans un menu e
langue arabe avec delph [ par lahreche ]
Empêcher la saisie de lettres venant du clavier sur un TMemo [ par ewertheimer ]
Bonjour je voulais savoir si il etait possible d'enpecher la saisie de lettre venant du clavier sur un TMemo mais l'autoriser venant d'une commande Me
ecrire une application en d'autre langue. [ par katib ]
salut, comment on peut réaliser une application en d'autre langue...? exemple je veut ecrire une application en langue arabe, (Fichier Edition Format,
|
Téléchargements
Logiciels à télécharger sur le même thème :
|