Detection parmetres regionaux

Signaler
Messages postés
23
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
27 juin 2003
-
Messages postés
16
Date d'inscription
jeudi 1 février 2001
Statut
Membre
Dernière intervention
9 novembre 2004
-
bonjour, je code un prog ki doit etre utilise en france et au japon; seulement voila le code doit changer selon le pays.
par quel moyen pourrais je detecter si le prog est execute sur un pc se trouvant dans tel ou tel pays ? (en lisant par ex dans les parametres regionnaux)

6 réponses

Messages postés
100
Date d'inscription
mercredi 29 mai 2002
Statut
Membre
Dernière intervention
27 juillet 2004

Bonjour Holy,

dernièrement j'ai eu à rechercher un moyen de lire les paramètres régionaux pour savoir si on était en config (. et ,) ou (, et ;).

--------------------------------------------------------
Voici mon prog de test.

1- Nouveau projet exe vb

2- Mettre un bouton sur la feuille et colle le code suivant.

Option Explicit

Dim Separateur As String

Private Sub Form_Load()
Call RecupParamètres
End Sub

Public Sub RecupParamètres()
Debug.Print "****************************"
Dim lplcdate As String * 1
Dim result As Long

Const LOCALE_USER_DEFAULT = &H400

'-----------------
'symbole décimale?
Const LOCALE_SDECIMAL = &HE

result = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, lplcdate, 2)
If result <> 0 Then
Separateur = lplcdate
Debug.Print "symbole décimale : " & Separateur
End If

'--------------------
'séparateur de liste?
Const LOCALE_SEPLISTE = &HC

result = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SEPLISTE, lplcdate, 2)
If result <> 0 Then
Separateur = lplcdate
Debug.Print "séparateur de liste : " & Separateur
End If


'nbre de décimales?
Const LOCALE_NBREDECIMAL = &H11

result = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_NBREDECIMAL, lplcdate, 2)
If result <> 0 Then
Separateur = lplcdate
Debug.Print "nbre de décimales : " & Separateur
End If


'symbole monétaire ?
Const LOCALE_SMONETAIRE = &H14

result = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SMONETAIRE, lplcdate, 2)
If result <> 0 Then
Separateur = lplcdate
Debug.Print "symbole monétaire : " & Separateur
End If

End Sub

Private Sub Command1_Click()
RecupParamètres
End Sub

3- Ajouter un module et mets le code suivant

' Déclaration de la fonction API
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _
(ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, _
ByVal cchData As Long) As Long

--------------------------------------------------------

ça permet de lire qqs paramètres, je n'ai pas tt recherché.
le bouton n'est pas utile, j'avoue.

Que ça te convienne ou pas, peux-tu le faire savoir?

A +.
0
Messages postés
23
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
27 juin 2003

ben apparement, si j'utilise la fonction qui choppe le symbole monetaire, ca peut servir de ristourne, je mets le symbole de la monnaie du pays que je veux, et voila... mais j'aimerais qd meme bien trouver une solution qui prenne l'une des 2 valeurs de la premiere page de proprietes :'(
0
Messages postés
100
Date d'inscription
mercredi 29 mai 2002
Statut
Membre
Dernière intervention
27 juillet 2004

1- api :

Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

2- ex :

Private Sub Command1_Click()
Dim result As Long
result = GetUserDefaultLCID
End Sub

3- valeur de result:

-->result=1036 si Français standart
-->result=1033 si Anglais EU
-->result=1041 si Japonais
-->etc
0
Messages postés
23
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
27 juin 2003

C genial, exactement ce k'il me falait ^^
merci bcp ^_______^
puis je te demander ta source, si ce n'est po indiscret ? (la source pour trouver cette api je veux dire :)
encore merci :)
0
Messages postés
100
Date d'inscription
mercredi 29 mai 2002
Statut
Membre
Dernière intervention
27 juillet 2004

salut holy,

excuse pour le retard, on avait des problèmes de connexion à internet.

Pour ce qui est de ma source, c'est internet.

Sur le site de microsoft (http://search.microsoft.com), j'ai tapé 'GetLocaleInfo'. Ce qui m'a amené à trouver 'GetUserDefaultLCID'.

Je l'ai testé, il a retourné 1036 pour Français Standard.

Tjrs sur le site de Microsoft, j'ai tapé 1036. Ds la liste des résultats, j'ai cliqué sur le lien '8.LCIDs and Passport International Services'. Comme ça j'ai pu avoir d'autres LCIDs.

voilà.

sinon pour avoir d'autres apis.

- http://docvb.free.fr/api.php
- http://vbapi.com

Bonne Prog et à +.

NuNu.
0
Messages postés
16
Date d'inscription
jeudi 1 février 2001
Statut
Membre
Dernière intervention
9 novembre 2004

Comment changer le séparateur décimal via un programme VB ??

webcyril
0