1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

TUTO Gérer Les Langues D'affichage et Clavier Sous Windows

Discussion dans 'Windev' créé par popoy, Jan 8, 2019.

  1. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    3,012
    J'aime reçus:
    1,618
    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 surtout

    Bonjour 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
     
    #1 popoy, Jan 8, 2019
    Dernière édition par un modérateur: Jan 8, 2019
    Tags:
    joker, suenodesign et WX1331 aiment ça.
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    3,012
    J'aime reçus:
    1,618
    info : Les
    Code (Text):
    [I] et [/I]
    doivent être supprimer du code.
     
  3. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    512
    J'aime reçus:
    740
    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

    [​IMG]
     

    Fichiers attachés:

    michel et joker aiment ça.
  4. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    3,012
    J'aime reçus:
    1,618

    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.
     
    suenodesign apprécie ceci.

Partager cette page

Chargement...