Sinistrus, tu as, me semble, tous les elements necessaires dans cette source pour réaliser ce que tu souhaite.
néanmoins, utiliser un Timer serait contre-performant.
Note: When an application calls this function for an international change to system parameters, it should broadcast the WM_SETTINGCHANGE message to inform other applications. If this is not done, SetLocaleInfo can make unexpected changes to system settings.
en clair, suffit d'attendre WM_SETTINGCHANGE pour être avertit d'un changement de parametres (langue, dans ton cas)
moi je n'ai pas noté, mais j'ai une remarque a faire au sujet de la source :
Le code est propre et bien commenté mais un probleme se pose lorsque tu vx modifier certains parametres comme le code pays , le pays, la langue, son code..... ezt plein de chose
Merci ! Ca me dépanne bien. Cela faisait un moment que je cherchais qqch pour gérer facilement le format de date.
Simple et efficace.
Idem que le commentaire précédent : 10/10 !
Merci, C'est bien pratique !
Jusqu'ici je montais 1 usine à gaz pour lire la BdR quand j'avais besoin de ces infos.
Avec ton info de ces API, je vais économiser bien des lignes de code ....je mets 10/10.
Combo1.AddItem "Symbole Monétaire Régional"
Combo1.AddItem "Symbole Monétaire International"
Combo1.AddItem "Nom Anglais de la Devise"
Combo1.AddItem "Nom natif de la Devise"
Combo1.AddItem "Identifiant de la langue"
Combo1.AddItem "Nom complet de la langue en cours"
Combo1.AddItem "Nom de la Langue native"
Combo1.AddItem "Code du Pays"
Combo1.AddItem "Nom du Pays"
Combo1.AddItem "Nom du Pays en Anglais"
Combo1.AddItem "Nom du Pays abbrégé"
Combo1.AddItem "Nom du Pays d'origine"
Combo1.AddItem "Code Langue par défaut"
Combo1.AddItem "Code du Pays par défaut"
Combo1.AddItem "Code Page"
Combo1.AddItem "Séparateur décimal monétaire"
Combo1.AddItem "Séparateur de millier monétaire"
Combo1.AddItem "Groupement monétaire"
Combo1.AddItem "local monetary digits"
Combo1.AddItem "intl monetary digits"
Combo1.AddItem "positive currency mode"
Combo1.AddItem "negative currency mode"
Combo1.AddItem "Séparateur décimal numérique"
Combo1.AddItem "Séparateur de millier numérique"
Combo1.AddItem "Séparateur de date"
Combo1.AddItem "Séparateur de l'heure"
Combo1.AddItem "Format Date Court (ex: dd/MM/yy)"
Combo1.AddItem "Format Date Long (ex: dd/MM/yyyy)"
Combo1.AddItem "Format de l'heure"
Combo1.AddItem "Affichage Date Courte => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D"
Combo1.AddItem "Affichage Date Longue => 0: M-D-Y; 1: D-M-Y; 2: Y-M-D"
Combo1.AddItem "Format de l'heure spécifique => 0: AM/PM; 1: 24H"
Combo1.AddItem "Format du siècle spécifique => 0: 2 digits; 1: 4 digits"
Combo1.AddItem "Zéro spécifique pour l'heure => 0: Non; 1: Oui"
Combo1.AddItem "Zéro spécifique pour le jour => 0: Non; 1: Oui"
Combo1.AddItem "Zéro spécifique pour le mois => 0: non; 1: Oui"
Combo1.AddItem "Chaîne remplaçant la chaîne AM"
Combo1.AddItem "Chaîne remplaçant la c"
Combo1.ListIndex = "0"
End Sub
Private Sub Command1_Click() 'Lire un paramètre
Dim P As Long
If Combo1.Text "Symbole Monétaire Régional" Then P &H14
If Combo1.Text "Symbole Monétaire International" Then P &H15
If Combo1.Text "Nom Anglais de la Devise" Then P &H1007
If Combo1.Text "Nom natif de la Devise" Then P &H1008
If Combo1.Text "Identifiant de la langue" Then P &H1
If Combo1.Text "Nom complet de la langue en cours" Then P &H2
If Combo1.Text "Nom de la Langue native" Then P &H1001
If Combo1.Text "Code du Pays" Then P &H5
If Combo1.Text "Nom du Pays" Then P &H6
If Combo1.Text "Nom du Pays en Anglais" Then P &H1002
If Combo1.Text "Nom du Pays abbrégé" Then P &H7
If Combo1.Text "Nom du Pays d'origine" Then P &H8
If Combo1.Text "Code Langue par défaut" Then P &H9
If Combo1.Text "Code du Pays par défaut" Then P &HA
If Combo1.Text "Code Page" Then P &HB
If Combo1.Text "Séparateur décimal monétaire" Then P &H16
If Combo1.Text "Séparateur de millier monétaire" Then P &H17
If Combo1.Text "Groupement monétaire" Then P &H18
If Combo1.Text "local monetary digits" Then P &H19
If Combo1.Text "intl monetary digits" Then P &H1A
If Combo1.Text "positive currency mode" Then P &H1B
If Combo1.Text "negative currency mode" Then P &H1C
If Combo1.Text "Séparateur décimal numérique" Then P &HE
If Combo1.Text "Séparateur de millier numérique" Then P &HF
If Combo1.Text "Séparateur de date" Then P &H1D
If Combo1.Text "Séparateur de l'heure" Then P &H1E
If Combo1.Text "Format Date Court (ex: dd/MM/yy)" Then P &H1F
If Combo1.Text "Format Date Long (ex: dd/MM/yyyy)" Then P &H20
If Combo1.Text "Format de l'heure" Then P &H1003
If Combo1.Text "Affichage Date Courte> 0: M-D-Y; 1: D-M-Y; 2: Y-M-D" Then P = &H21
If Combo1.Text "Affichage Date Longue> 0: M-D-Y; 1: D-M-Y; 2: Y-M-D" Then P = &H22
If Combo1.Text "Format de l'heure spécifique> 0: AM/PM; 1: 24H" Then P = &H23
If Combo1.Text "Format du siècle spécifique> 0: 2 digits; 1: 4 digits" Then P = &H24
If Combo1.Text "Zéro spécifique pour l'heure> 0: Non; 1: Oui" Then P = &H25
If Combo1.Text "Zéro spécifique pour le jour> 0: Non; 1: Oui" Then P = &H26
If Combo1.Text "Zéro spécifique pour le mois> 0: non; 1: Oui" Then P = &H27
If Combo1.Text "Chaîne remplaçant la chaîne AM" Then P &H28
If Combo1.Text "Chaîne remplaçant la chaîne PM" Then P &H29
Text1.Text = GetUserLocaleInfo(P)
End Sub
Tout marche bien et en plus, on lit en clair dans la Combo, le paramètre examiné.
Merci pour l'aide.
Public Function GetLocalCodeFromName(ByRef vsCodeName As String) As LOCALEConstants
Select Case vsCodeName
Case "LOCALE_ICENTURY": GetLocalCodeFromName = LOCALE_ICENTURY
Case "LOCALE_ICOUNTRY": GetLocalCodeFromName = LOCALE_ICOUNTRY
Case "LOCALE_ICURRDIGITS": GetLocalCodeFromName = LOCALE_ICURRDIGITS
Case "LOCALE_ICURRENCY": GetLocalCodeFromName = LOCALE_ICURRENCY
Case "LOCALE_IDATE": GetLocalCodeFromName = LOCALE_IDATE
Case "LOCALE_IDAYLZERO": GetLocalCodeFromName = LOCALE_IDAYLZERO
Case "LOCALE_IDEFAULTCODEPAGE": GetLocalCodeFromName = LOCALE_IDEFAULTCODEPAGE
Case "LOCALE_IDEFAULTCOUNTRY": GetLocalCodeFromName = LOCALE_IDEFAULTCOUNTRY
Case "LOCALE_IDEFAULTLANGUAGE": GetLocalCodeFromName = LOCALE_IDEFAULTLANGUAGE
Case "LOCALE_IINTLCURRDIGITS": GetLocalCodeFromName = LOCALE_IINTLCURRDIGITS
Case "LOCALE_ILANGUAGE": GetLocalCodeFromName = LOCALE_ILANGUAGE
Case "LOCALE_ILDATE": GetLocalCodeFromName = LOCALE_ILDATE
Case "LOCALE_IMONLZERO": GetLocalCodeFromName = LOCALE_IMONLZERO
Case "LOCALE_INEGCURR": GetLocalCodeFromName = LOCALE_INEGCURR
Case "LOCALE_ITIME": GetLocalCodeFromName = LOCALE_ITIME
Case "LOCALE_ITLZERO": GetLocalCodeFromName = LOCALE_ITLZERO
Case "LOCALE_S1159": GetLocalCodeFromName = LOCALE_S1159
Case "LOCALE_S2359": GetLocalCodeFromName = LOCALE_S2359
Case "LOCALE_SABBREVCTRYNAME": GetLocalCodeFromName = LOCALE_SABBREVCTRYNAME
Case "LOCALE_SABBREVLANGNAME": GetLocalCodeFromName = LOCALE_SABBREVLANGNAME
Case "LOCALE_SCOUNTRY": GetLocalCodeFromName = LOCALE_SCOUNTRY
Case "LOCALE_SCURRENCY": GetLocalCodeFromName = LOCALE_SCURRENCY
Case "LOCALE_SDATE": GetLocalCodeFromName = LOCALE_SDATE
Case "LOCALE_SDECIMAL": GetLocalCodeFromName = LOCALE_SDECIMAL
Case "LOCALE_SENGCOUNTRY": GetLocalCodeFromName = LOCALE_SENGCOUNTRY
Case "LOCALE_SENGCURRNAME": GetLocalCodeFromName = LOCALE_SENGCURRNAME
Case "LOCALE_SENGLANGUAGE": GetLocalCodeFromName = LOCALE_SENGLANGUAGE
Case "LOCALE_SINTLSYMBOL": GetLocalCodeFromName = LOCALE_SINTLSYMBOL
Case "LOCALE_SLANGUAGE": GetLocalCodeFromName = LOCALE_SLANGUAGE
Case "LOCALE_SLONGDATE": GetLocalCodeFromName = LOCALE_SLONGDATE
Case "LOCALE_SMONDECIMALSEP": GetLocalCodeFromName = LOCALE_SMONDECIMALSEP
Case "LOCALE_SMONGROUPING": GetLocalCodeFromName = LOCALE_SMONGROUPING
Case "LOCALE_SMONTHOUSANDSEP": GetLocalCodeFromName = LOCALE_SMONTHOUSANDSEP
Case "LOCALE_SNATIVECTRYNAME": GetLocalCodeFromName = LOCALE_SNATIVECTRYNAME
Case "LOCALE_SNATIVECURRNAME": GetLocalCodeFromName = LOCALE_SNATIVECURRNAME
Case "LOCALE_SNATIVELANGNAME": GetLocalCodeFromName = LOCALE_SNATIVELANGNAME
Case "LOCALE_SSHORTDATE": GetLocalCodeFromName = LOCALE_SSHORTDATE
Case "LOCALE_STHOUSAND": GetLocalCodeFromName = LOCALE_STHOUSAND
Case "LOCALE_STIME": GetLocalCodeFromName = LOCALE_STIME
Case "LOCALE_STIMEFORMAT": GetLocalCodeFromName = LOCALE_STIMEFORMAT
End Select
End Function
Merci Renfield, effectivement ta solution fonctionne.
j'ai essayé:
Private Sub Command1_Click() 'Lire un paramètre
Dim P As Long
If Combo1.Text "LOCALE_SCURRENCY" Then P &H14
If Combo1.Text "LOCALE_SINTLSYMBOL" Then P &H15
Text1.Text = GetUserLocaleInfo(P)
End Sub
c'est bon.
Ce code me plaît bien
J'ai voulu faire un mini programme de test:(1 TextBox,1 ComboBox et un Bouton)
Private Sub Form_Load()
Combo1.AddItem "LOCALE_SINTLSYMBOL"
Combo1.AddItem "LOCALE_SENGCURRNAME"
Combo1.AddItem "LOCALE_SNATIVECURRNAME"
Combo1.AddItem "LOCALE_ILANGUAGE"
Combo1.AddItem "LOCALE_SLANGUAGE"
Combo1.ListIndex = "0"
End Sub
Private Sub Command1_Click() 'Lire un paramètre
Dim P As Long
P = LOCALE_SINTLSYMBOL
Text1.Text = GetUserLocaleInfo(P)
End Sub
Ainsi c'est bon
Mais si on fait
P = Combo1.Text ça ne marche plus.
P = CLng(Combo1.Text) ne marche pas mieux.
Comment faire reconnaître le contenu de Combo1?
Merci à celui qui aura une solution.
Je n'arrive pas à changer la langue du système. Je voudrais la mettre en anglais us.
J'arrive à changer la "," par un ".", mais pas la langue.
Voila ce que je mets :
'-------------DEBUT---------
Dim str As String
Dim a As Boolean
'enu --> us
'fra --> fr
'pour voir quelle est la langue
str = Module2.GetUserLocaleInfo(LOCALE_SABBREVLANGNAME)
MsgBox (str)
'pour la changer en anglais us
a = Module2.SetUserLocaleInfo(LOCALE_SABBREVLANGNAME, "ENU")
'pour voir quelle est la langue
str = Module2.GetUserLocaleInfo(LOCALE_SABBREVLANGNAME)
MsgBox (str)
'-----------FIN----------------
Quelqu'un peut m'aider svp?
Merci
Merci
Private Sub Timer1_Timer()
'# On place le nom du pays dans le label
Label1.Caption = GetUserLocaleInfo(LOCALE_SCOUNTRY)
End Sub
Sinistrus, tu as, me semble, tous les elements necessaires dans cette source pour réaliser ce que tu souhaite.
néanmoins, utiliser un Timer serait contre-performant.
la doc nous dit :
http://msdn2.microsoft.com/en-us/library/ms776312.aspx
Note: When an application calls this function for an international change to system parameters, it should broadcast the WM_SETTINGCHANGE message to inform other applications. If this is not done, SetLocaleInfo can make unexpected changes to system settings.
en clair, suffit d'attendre WM_SETTINGCHANGE pour être avertit d'un changement de parametres (langue, dans ton cas)