Salut a tous, Suite a mes pérégrinations pour gérer les langues sous Windows Voir Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Et suites aux réponses fournis sur le forum dont je remercie encore surtoutBonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!. J’ai pu constaté que PcSoft ne Fournit que les fonctions Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! et Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!. Celles-ci manques de précisions et ne gèrent pas la totalité des langues qu’il est Possible d’utilisées Sous Windows. Je vous Propose donc un Tutoriel qui je pense vous plaira. Donc Après avoir créer un Projet se nommant WD_Langues_Windows, Je Créer une fenêtre FEN_Principale. Clic Droit sur Assemblages .Net > Utiliser un assemblage .Net dans le Projet Dans la fenêtre qui apparait sélectionner(Case a cocher a gauche) les lignes Mscorlib mscorlib.dll System.Windows.Forms System.Windows.Forms.dll Puis Valider. Code (Windev): //Code Initialisation du Projet QUAND EXCEPTION Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le Framework .NET a renvoyé une erreur inattendue","L'application va se terminer", "", "Détails de l'erreur :", Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(errMessage)) Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() FIN Créer une Collection de Procédures Code (Windev): //Déclaration globale de la Collection de Procédures //constantes système Windows langues du clavier CONSTANT WM_INPUTLANGCHANGE = 0x0051 FIN Procédures a créé dans la Collection de Procédures: Change_Clavier_NET(), Clavier_Courant(), Code_Langue_Clavier_Login(), detecter() GetUserLocaleInfo, Langue_Actuelle_Affichage(), Liste_Langues_Claviers_Windows() Liste_Langues_Installés_Affichage_Windows() Code des Procédures Code (Windev): // Résumé : Modifie La Langue Actuelle du Clavier // Syntaxe : //Change_Clavier_NET (<lng>) // // Paramètres : // lng : Nom de la Langue Type Pays // Valeur de retour : // Aucune // // Exemple : // Change_Clavier_NET("az-Cyrl-AZ") // PROCÉDURE Change_Clavier_NET(lng) InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo(lng)) Code (Windev): // Résumé : Renvoie Le Nom de La Langue et Pays Actuelle // Utilisé ¨pour le Clavier //Nom au Format Iso 639 Pour La Langue //Nom au Format ISO 3166 Pour Le Pays //Les Deux Nom Séparé par un "-" //Le Type peut être rajouté si nécessaire //Exemples : // fr-FR (Français - France) // az-Cyrl-AZ (Azéri Cyrillique - Azerbaïdjan) // az-Latn-AZ (Azéri Latin - Azerbaïdjan) // Syntaxe : //[ <Résultat> = ] Clavier_Courant () // // Paramètres : // Aucun // Valeur de retour : // chaîne ANSI : PROCÉDURE Clavier_Courant() sRetour est une chaîne ANSI c est InputLanguageCollection dynamique c = InputLanguage.get_CurrentInputLanguage() k est InputLanguage dynamique k = c sRetour += k:Culture:Name RENVOYER sRetour Code (Windev): // Résumé : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] Code_Langue_Clavier_Login () // // Paramètres : // Aucun // Valeur de retour : // chaîne ANSI : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // PROCÉDURE Code_Langue_Clavier_Login() sRetour est une chaîne ANSI ResLecture est une chaîne ANSI ResExécute est un booléen ResLecture = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("HKEY_CURRENT_USER\Keyboard Layout\Preload","1",ResExécute) SI ResExécute = [I]Vrai[/I] ALORS sRetour += ResLecture FIN RENVOYER sRetour Code (Windev): // Résumé : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] Langue_Actuelle_Affichage () // // Paramètres : // Aucun // Valeur de retour : // chaîne ANSI : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // PROCÉDURE Langue_Actuelle_Affichage() sRetour est une chaîne ANSI ResLecture est une chaîne ANSI ResExécute est un booléen ResLecture = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("HKEY_CURRENT_USER\Control Panel\International","LocaleName",ResExécute) SI ResExécute = [I]Vrai[/I] ALORS sRetour = ResLecture FIN RENVOYER sRetour Code (Windev): // Résumé : Liste des langues claviers utilisables sous Windows // Syntaxe : //[ <Résultat> = ] Liste_Langues_Claviers_Windows () // // Paramètres : // Aucun // Valeur de retour : // chaîne ANSI : Représentant //Nom au Format Iso 639 Pour La Langue //Nom au Format ISO 3166 Pour Le Pays (Sous Langues) //Les Deux Nom Séparé par un "-" // PROCÉDURE Liste_Langues_Claviers_Windows() //Liste des langues claviers utilisables sous Windows sRetour est une chaîne ANSI c est InputLanguageCollection dynamique c = InputLanguage.get_InstalledInputLanguages() k est InputLanguage dynamique POUR i = 0 _À_ c:Count-1 k= c:get_Item(i) sRetour += k:Culture:Name + [I]RC[/I] FIN RENVOYER sRetour Code (Windev): PROCÉDURE detecter() nMonClavier est un entier nMonClavier = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!() sMaValeure est une chaîne SELON nMonClavier CAS [I]langueSerbe[/I] OU [I]langueCroate[/I] OU [I]langueArabe[/I]: sMaValeure = "Clavier serbe ou croate ou arabe" CAS [I]langueAfrikaans[/I] : sMaValeure = "Clavier afrikaans" CAS [I]langueAlbanais[/I] : sMaValeure = "Clavier albanais" CAS [I]langueAllemand[/I] : sMaValeure = "Clavier allemand" CAS [I]langueAnglais[/I] : sMaValeure = "Clavier anglais" CAS [I]langueArménien[/I] : sMaValeure = "Clavier arménien" CAS [I]langueBengali[/I] : sMaValeure = "Clavier bengali" CAS [I]langueBiélorusse[/I] : sMaValeure = "Clavier biélorusse" CAS [I]langueBulgare[/I] : sMaValeure = "Clavier bulgare" CAS [I]langueCatalan[/I] : sMaValeure = "Clavier catalan" CAS [I]langueChinois[/I] : sMaValeure = "Clavier chinois simplifié" CAS [I]langueCoréen[/I] : sMaValeure = "Clavier coréen" CAS [I]langueDanois[/I] : sMaValeure = "Clavier danois" CAS [I]langueEspagnol[/I] : sMaValeure = "Clavier espagnol" CAS [I]langueEstonien[/I] : sMaValeure = "Clavier estonien" CAS [I]langueFinnois[/I] : sMaValeure = "Clavier finnois" CAS [I]langueFrançais[/I] : sMaValeure = "Clavier français" CAS [I]langueGéorgien[/I] : sMaValeure = "Clavier géorgien" CAS [I]langueGrec[/I] : sMaValeure = "Clavier grec" CAS [I]langueHébreu[/I] : sMaValeure = "Clavier hébreu" CAS [I]langueHindi[/I] : sMaValeure = "Clavier hindi" CAS [I]langueHongrois[/I] : sMaValeure = "Clavier hongrois" CAS [I]langueIndonésien[/I] : sMaValeure = "Clavier indonésien" CAS [I]langueIslandais[/I] : sMaValeure = "Clavier islandais" CAS [I]langueItalien[/I] : sMaValeure = "Clavier italien" CAS [I]langueJaponais[/I] : sMaValeure = "Clavier japonais" CAS [I]langueLetton[/I] : sMaValeure = "Clavier letton" CAS [I]langueLituanien[/I] : sMaValeure = "Clavier lituanien" CAS [I]langueMacédonien[/I] : sMaValeure = "Clavier macédonien" CAS [I]langueNéerlandais[/I] : sMaValeure = "Clavier néerlandais" CAS [I]langueNorvégien[/I] : sMaValeure = "Clavier norvégien" CAS [I]langueOuzbek[/I] : sMaValeure = "Clavier ouzbek" CAS [I]languePendjabi[/I] : sMaValeure = "Clavier pendjabi" CAS [I]languePolonais[/I] : sMaValeure = "Clavier polonais" CAS [I]languePortugais[/I] : sMaValeure = "Clavier portugais" CAS [I]langueRoumain[/I] : sMaValeure = "Clavier roumain" CAS [I]langueRusse[/I] : sMaValeure = "Clavier russe" CAS [I]langueSindhi[/I] : sMaValeure = "Clavier sindhi" CAS [I]langueSlovaque[/I] : sMaValeure = "Clavier slovaque" CAS [I]langueSlovène[/I] : sMaValeure = "Clavier slovène" CAS [I]langueSuédois[/I] : sMaValeure = "Clavier suédois" CAS [I]langueTchèque[/I] : sMaValeure = "Clavier tchèque" CAS [I]langueThaï[/I] : sMaValeure = "Clavier thaï" CAS [I]langueTurc[/I] : sMaValeure = "Clavier turc" CAS [I]langueUkrainien[/I] : sMaValeure = "Clavier ukrainien" CAS [I]langueVietnamien[/I] : sMaValeure = "Clavier vietnamien" AUTRE CAS FIN Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Langue du Clavier Actuel Par windev" + [I]TAB[/I] + sMaValeure) Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Langue du Clavier Actuel Par .Net" + [I]TAB[/I] + Clavier_Courant()) Code (Windev): // Résumé : Récupère La Liste des Langues Installés Pour L'Affichage // Syntaxe //[ <Résultat> = ] Liste_Langues_Installés_Affichage_Windows () // // Paramètres : // Aucun // Valeur de retour : // chaîne ANSI : PROCÉDURE Liste_Langues_Installés_Affichage_Windows() sRetour est une chaîne ANSI //MUI UILanguages sListeClé est une chaîne sListeClé = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages") sRetour = sListeClé + [I]RC[/I] RENVOYER sRetour Créer cinq champs de Saisies Multi lignes dans la Fenêtre Et une Liste Libellé de SAI_Texte1 : Liste des Langues Installés Pour Le Clavier Libellé de SAI_Texte2 : Langue Actuelle Du Clavier Libellé de SAI_Texte3 : Liste des Langues Installés Pour L'Affichage Libellé de SAI_Texte4 : Langue Actuelle Pour L'Affichage Libellé de SAI_Texte5 : Code Langue Actuelle Du Clavier A L'Ouverture de Cession Libellé de LISTE_SansNom1 : Changer de Clavier Code (Windev): //Déclaration globale de la Fenêtre PROCÉDURE MaFenêtre() //Intercepte l'événement de changement de Clavier Windows sur la fenêtre Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! (detecter,"*.*",WM_INPUTLANGCHANGE) //Fin d’initialisation de la Fenêtre SAI_Texte1 = Liste_Langues_Claviers_Windows() SAI_Texte2 = Clavier_Courant() SAI_Texte3 = Liste_Langues_Installés_Affichage_Windows() SAI_Texte4 = Langue_Actuelle_Affichage() SAI_Texte5 = Code_Langue_Clavier_Login POUR TOUTE CHAÎNE sUnechaine DE SAI_Texte1 SEPAREE PAR [I]RC[/I] Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LISTE_SansNom1,sUnechaine) FIN Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(LISTE_SansNom1,[I]Vrai[/I],[I]triDéfaut[/I]) //Sélection d’une ligne de la Liste //Modification de la langue du Clavier selon la sélection Malangue est une chaîne ANSI Malangue = MoiMême[MoiMême] Change_Clavier_NET(Malangue) Le Code de la Sélection d’une ligne de la Liste Montre bien grâce à L’événement WM_INPUTLANGCHANGE qu’il y a un problème avec certaines langues Windows avec les fonctions Pcsoft
Bonsoir @Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! C'est une bonne chose de partager cet exemple. Je t'en remercie. De ma part, j'ai appliqué ta démarche et voici le projet en WD20-66p
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , quand tu clic sur un élément de la liste, ça change le clavier de windows. Le plus intéressant est si tu as des claviers de la même langue mais pas la même disposition de touche. L'avantage de mon exemple est de pouvoir détecter toutes les langues de windows contrairement aux fonctions wl.