[R] Détecter alphabet choisi

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[R] Détecter alphabet choisi

#1

Message par GMH »

Bonjour,

Je souhaite que mon programme détecte la langue choisie par l'utilisateur lorsqu'il le lance (langue affichée en bas à droite de l'écran, à côté de l'heure sous Window10).
J'ai trouvé ce code sur internet, mais il n'indique pas l'alphabet choisi parmi les "langues préférées" listées dans "Paramètres/Langues/Langues préférées" de Windows10 . Il indique le type de clavier de l'utilisateur, donc pour moi, "Clavier français", autrement dit azerty.

Voici le code :
Func _Language()
Local $sLanNum = "0413,0813|0409,0809,0c09,1009,1409,1809,1c09,2009,2409,2809," & _
"2c09,3009,3409|040c,080c,0c0c,100c,140c,180c|0407,0807,0c07,1007," & _
"1407|0410,0810|0414,0814|0415|0416,0816|040a,080a,0c0a,100a,140a," & _
"180a,1c0a,200a,240a,280a,2c0a,300a,340a,380a,3c0a,400a,440a,480a," & _
"4c0a,500a|041d,081d"
Local $aLanName = StringSplit("Dutch|English|French|German|Italian|" & _
"Norwegian|Polish|Portuguese|Swedish", "|")
Local $aLanNum = StringSplit($sLanNum, "|")
Local $sLang = StringRight(RegRead("HKCU\Keyboard Layout\Preload","1"), 4)
If $sLang = "" Then Return SetError(1, 0, "Not Defined")
For $iCC = 1 To UBound($aLanNum) - 1
If StringInStr($aLanNum[$iCC], $sLang) Then Return $aLanName[$iCC]
Next
Return SetError(2, 0, "Other")
EndFunc
Sauriez-vous me dire quelles fonctions permettraient de détecter l'alphabet (latin, grec, russe, ...) entré par l'utilisateur via son clavier français ? Je vous remercie.
Modifié en dernier par GMH le mar. 26 mai 2020 16:21, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Détecter alphabet choisi

#2

Message par TommyDDR »

Le hasard fait bien les choses, en parcourant le msdn hier, je suis justement tombé sur cette fonction !
#include <WinAPISys.au3>
Local $kbl = Hex(_WinAPI_LoWord(_WinAPI_GetKeyboardLayout(WinGetHandle("[ACTIVE]"))), 4)
J'ai mis la fenêtre active mais n'hésitez pas à changer pour une fenêtre précise suivant votre besoin.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] Détecter alphabet choisi

#3

Message par GMH »

Ça fonctionne parfaitement.
Immense merci pour votre aide, en plus très rapide !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Détecter alphabet choisi

#4

Message par TommyDDR »

-> @KBLayout
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre