Detection parmetres regionaux

cs_holy Messages postés 23 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 27 juin 2003 - 7 juil. 2002 à 18:14
webcyril Messages postés 16 Date d'inscription jeudi 1 février 2001 Statut Membre Dernière intervention 9 novembre 2004 - 10 mars 2004 à 10:50
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

cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
7 juil. 2002 à 19:21
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
cs_holy Messages postés 23 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 27 juin 2003
8 juil. 2002 à 00:43
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
cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
8 juil. 2002 à 14:56
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
cs_holy Messages postés 23 Date d'inscription mardi 23 avril 2002 Statut Membre Dernière intervention 27 juin 2003
9 juil. 2002 à 00:12
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
9 juil. 2002 à 21:31
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
webcyril Messages postés 16 Date d'inscription jeudi 1 février 2001 Statut Membre Dernière intervention 9 novembre 2004
10 mars 2004 à 10:50
Comment changer le séparateur décimal via un programme VB ??

webcyril
0
Rejoignez-nous