Soyez le premier à donner votre avis sur cette source.
Snippet vu 15 558 fois - Téléchargée 31 fois
NameSpace LocaleInfo Public Module _MyLocaleInformationsFunctions ' Déclaration de fonction externe, dans une API de Windows. Private Declare Function GetLocaleInfoA Lib "kernel32" Alias "GetLocaleInfoA" (ByVal intLocale As Integer, ByVal intType As Integer, ByVal strRetour As String, ByVal intLongueurRetour As Integer) As Integer ''' <summary> ''' Retourne une information locale (255 Caractères) ''' </summary> ''' <param name="Flag">Nom du paramètre</param> Public Function GetLocaleInfo(ByVal Flag As GetLocaleInfoFlags) As String Dim Result As String Result = Space(255) 'Créer une chaîne de longueur 255 GetLocaleInfoA(0, Flag, Result, Len(Result)) Return Result End Function ''' <summary> ''' Cette fonction renvoie True si Windows est français. ''' </summary> Public Function IsFrench() As Boolean Dim Result As String Result = Space(5) 'Créer une chaîne de longueur 5 GetLocaleInfoA(0, GetLocaleInfoFlags.LOCALE_ILANGUAGE, Result, Len(Result)) ' Si les caractères 3 et 4 de Retour valent "0c", Windows est français. ' Les 2 premiers caractères indiquent la variante linguistique. Result = Left(Result, 4) Select Case Microsoft.VisualBasic.Strings.Right(Result, 2) Case "0c" Return True Case Else Return False End Select End Function ''' <summary> ''' Cette fonction renvoie True si Windows est anglais. ''' </summary> <Obsolete("Cette fonction n'a pas été testée !")> _ Public Function IsEnglish() As Boolean Dim Result As String Result = Space(5) 'Créer une chaîne de longueur 5 GetLocaleInfoA(0, GetLocaleInfoFlags.LOCALE_ILANGUAGE, Result, Len(Result)) ' Si les caractères 3 et 4 de Retour valent "0c", Windows est français. ' Les 2 premiers caractères indiquent la variante linguistique. Result = Left(Result, 4) Select Case Microsoft.VisualBasic.Strings.Right(Result, 2) Case "09" Return True Case Else Return False End Select End Function ''' <summary> ''' Retourne la langue du systeme (Nom Complet En Anglais (US); ISO Standard 639) ("Unkown" si non trouvé) ''' </summary> Public Function GetLanguage() As String On Error GoTo MyErr Dim Result As String Result = Space(255) 'Créer une chaîne de longueur 255 Dim length As Integer = GetLocaleInfoA(0, GetLocaleInfoFlags.LOCALE_SLANGUAGE, Result, Len(Result)) Return Left(Result, length - 1) MyErr: Return "Unkown" End Function ''' <summary> ''' Retourne le nom du language ayant pour ID LcID ("Unkown" si non trouvé) ''' </summary> ''' <param name="LcID">ID de la langue</param> ''' <returns></returns> ''' <remarks></remarks> Function GetLanguageOfLcid(ByVal LcID As Long) As String On Error GoTo MyErr Dim Result As New String(vbNullChar(0), 255) Dim length As Integer = GetLocaleInfoA(LcID, GetLocaleInfoFlags.LOCALE_SLANGUAGE, Result, Len(Result)) Return Left(Result, length - 1) MyErr: Return "Unkown" End Function ''' <summary> ''' Retourne le systeme métrique employé par le systeme. (-1 si non trouvé) ''' </summary> Public Function GetMeasureSystem() As MeasureSystem On Error Resume Next Return Int(Val(GetLocaleInfo(GetLocaleInfoFlags.LOCALE_IMEASURE))) Return -1 End Function End Module ''' <summary> ''' Enumération des système de mesure ''' </summary> ''' <remarks></remarks> Public Enum MeasureSystem ''' <summary> ''' Indique que le systeme de mesure n'a pas su être récupéré ''' </summary> ''' <remarks></remarks> Unkown = -1 ''' <summary> ''' Systeme de mesure Anglais (Miles, ...) ''' </summary> IMEASURE_ENGLISH = 1 ''' <summary> ''' Systeme de mesure Européen (Mètres, ...) ''' </summary> IMAESURE_METRIC = 0 End Enum ''' <summary> ''' Ensemble des flags utilisable pour la fonction GetLocaleInformation ''' </summary> Public Enum GetLocaleInfoFlags As Integer ''' <summary> ''' LANGID in hexadecimal digits ''' </summary> ''' <remarks></remarks> LOCALE_ILANGUAGE = 1 ''' <summary> ''' Full localized name of the language ''' </summary> ''' <remarks></remarks> LOCALE_SLANGUAGE = 2 ' ''' <summary> ''' Full English U.S. name of the language ISO Standard 639 ''' </summary> ''' <remarks></remarks> LOCALE_SENGLANGUAGE = 4097 ' ''' <summary> ''' Abbreviated name of the language, ISO Standard 639 ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVLANGNAME = 3 ' ''' <summary> ''' Native name of the language ''' </summary> ''' <remarks></remarks> LOCALE_SNATIVELANGNAME = 4 ' ''' <summary> ''' Country code, based on international phone codes ''' </summary> ''' <remarks></remarks> LOCALE_ICOUNTRY = 5 ' ''' <summary> ''' The full localized name of the country. ''' </summary> ''' <remarks></remarks> LOCALE_SCOUNTRY = 6 ' ''' <summary> ''' The full English U.S. name of the country. ''' </summary> ''' <remarks></remarks> LOCALE_SENGCOUNTRY = 4098 ' ''' <summary> ''' Abbreviated name of the country ISO Standard 3166. ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVCTRYNAME = 7 ' ''' <summary> ''' Native name of the country. ''' </summary> ''' <remarks></remarks> LOCALE_SNATIVECTRYNAME = 8 ' ''' <summary> ''' LANGID for the principal language spoken in this locale. ''' </summary> ''' <remarks></remarks> LOCALE_IDEFAULTLANGUAGE = 9 ' ''' <summary> ''' Country code for the principal country in this locale. ''' </summary> ''' <remarks></remarks> LOCALE_IDEFAULTCOUNTRY = 10 ' ''' <summary> ''' OEM code page associated with the country. ''' </summary> ''' <remarks></remarks> LOCALE_IDEFAULTCODEPAGE = 11 ' ''' <summary> ''' Characters used to separate list items. ''' </summary> ''' <remarks></remarks> LOCALE_SLIST = 12 ' ''' <summary> ''' 0 for metric system (S.I.) and 1 for the U.S. ''' </summary> ''' <remarks></remarks> LOCALE_IMEASURE = 13 ' ''' <summary> ''' decimal separator ''' </summary> ''' <remarks></remarks> LOCALE_SDECIMAL = 14 ' ''' <summary> ''' thousand separator ''' </summary> ''' <remarks></remarks> LOCALE_STHOUSAND = 15 ' ''' <summary> ''' Sizes for each group of digits to the left of the decimal. ''' </summary> ''' <remarks></remarks> LOCALE_SGROUPING = 16 ' ''' <summary> ''' number of fractional digits ''' </summary> ''' <remarks></remarks> LOCALE_IDIGITS = 17 ' ''' <summary> ''' 0 means use no leading zeros; 1 means use leading zeros. ''' </summary> ''' <remarks></remarks> LOCALE_ILZERO = 18 ' ''' <summary> ''' Ten characters equivalent of the ASCII 0-9. ''' </summary> ''' <remarks></remarks> LOCALE_SNATIVEDIGITS = 19 ' ''' <summary> ''' local monetary symbol ''' </summary> ''' <remarks></remarks> LOCALE_SCURRENCY = 20 ' ''' <summary> ''' International monetary symbol ISO 4217. ''' </summary> ''' <remarks></remarks> LOCALE_SINTLSYMBOL = 21 ' ''' <summary> ''' monetary decimal separator ''' </summary> ''' <remarks></remarks> LOCALE_SMONDECIMALSEP = 22 ' ''' <summary> ''' monetary thousand separator ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHOUSANDSEP = 23 ' ''' <summary> ''' monetary grouping ''' </summary> ''' <remarks></remarks> LOCALE_SMONGROUPING = 24 ' ''' <summary> ''' # local monetary digits ''' </summary> ''' <remarks></remarks> LOCALE_ICURRDIGITS = 25 ' ''' <summary> ''' # intl monetary digits ''' </summary> ''' <remarks></remarks> LOCALE_IINTLCURRDIGITS = 26 ' ''' <summary> ''' positive currency mode ''' </summary> ''' <remarks></remarks> LOCALE_ICURRENCY = 27 ' ''' <summary> ''' negative currency mode ''' </summary> ''' <remarks></remarks> LOCALE_INEGCURR = 28 ' ''' <summary> ''' date separator ''' </summary> ''' <remarks></remarks> LOCALE_SDATE = 29 ' ''' <summary> ''' time separator ''' </summary> ''' <remarks></remarks> LOCALE_STIME = 30 ' ''' <summary> ''' short date format string ''' </summary> ''' <remarks></remarks> LOCALE_SSHORTDATE = 31 ' ''' <summary> ''' long date format string ''' </summary> ''' <remarks></remarks> LOCALE_SLONGDATE = 32 ' ''' <summary> ''' time format string ''' </summary> ''' <remarks></remarks> LOCALE_STIMEFORMAT = 4099 ' ''' <summary> ''' short date format, 0 M?D?Y,1 D?M?Yr,2 Y?M?D ''' </summary> ''' <remarks></remarks> LOCALE_IDATE = 33 ' ''' <summary> ''' long date format, 0 M?D?Y,1 D?M?Y,2 Y?M?D ''' </summary> ''' <remarks></remarks> LOCALE_ILDATE = 34 ' ''' <summary> ''' time format, 0 AM/PM 12-hr format, 1 24-hr format ''' </summary> ''' <remarks></remarks> LOCALE_ITIME = 35 ' ''' <summary> ''' Use full 4-digit century, 0 Two digit.1 Full century ''' </summary> ''' <remarks></remarks> LOCALE_ICENTURY = 36 ' ''' <summary> ''' leading zeros in time field, 0 No , 1 yes ''' </summary> ''' <remarks></remarks> LOCALE_ITLZERO = 37 ' ''' <summary> ''' leading zeros in day field, 0 No , 1 yes ''' </summary> ''' <remarks></remarks> LOCALE_IDAYLZERO = 38 ' ''' <summary> ''' leading zeros in month field, 0 No , 1 yes ''' </summary> ''' <remarks></remarks> LOCALE_IMONLZERO = 39 ' ''' <summary> ''' AM designator ''' </summary> ''' <remarks></remarks> LOCALE_S1159 = 40 ' ''' <summary> ''' PM designator ''' </summary> ''' <remarks></remarks> LOCALE_S2359 = 41 ' ''' <summary> ''' long name for Monday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME1 = 42 ' ''' <summary> ''' long name for Tuesday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME2 = 43 ' ''' <summary> ''' long name for Wednesday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME3 = 44 ' ''' <summary> ''' long name for Thursday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME4 = 45 ' ''' <summary> ''' long name for Friday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME5 = 46 ' ''' <summary> ''' long name for Saturday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME6 = 47 ' ''' <summary> ''' long name for Sunday ''' </summary> ''' <remarks></remarks> LOCALE_SDAYNAME7 = 48 ' ''' <summary> ''' abbreviated name for Monday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME1 = 49 ' ''' <summary> ''' abbreviated name for Tuesday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME2 = 51 ' ''' <summary> ''' abbreviated name for Wednesday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME3 = 52 ' ''' <summary> ''' abbreviated name for Thursday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME4 = 53 ' ''' <summary> ''' abbreviated name for Friday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME5 = 54 ' ''' <summary> ''' abbreviated name for Saturday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME6 = 55 ' ''' <summary> ''' abbreviated name for Sunday ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVDAYNAME7 = 56 ' ''' <summary> ''' long name for January ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME1 = 57 ' ''' <summary> ''' long name for February ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME2 = 58 ' ''' <summary> ''' long name for March ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME3 = 59 ' ''' <summary> ''' long name for April ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME4 = 60 ' ''' <summary> ''' long name for May ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME5 = 61 ' ''' <summary> ''' long name for June ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME6 = 62 ' ''' <summary> ''' long name for July ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME7 = 63 ' ''' <summary> ''' long name for August ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME8 = 64 ' ''' <summary> ''' long name for September ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME9 = 65 ' ''' <summary> ''' long name for October ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME10 = 66 ' ''' <summary> ''' long name for November ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME11 = 67 ' ''' <summary> ''' long name for December ''' </summary> ''' <remarks></remarks> LOCALE_SMONTHNAME12 = 68 ' ''' <summary> ''' abbreviated name for January ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME1 = 69 ' ''' <summary> ''' abbreviated name for February ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME2 = 70 ' ''' <summary> ''' abbreviated name for March ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME3 = 71 ' ''' <summary> ''' abbreviated name for April ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME4 = 72 ' ''' <summary> ''' abbreviated name for May ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME5 = 73 ' ''' <summary> ''' abbreviated name for June ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME6 = 74 ' ''' <summary> ''' abbreviated name for July ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME7 = 75 ' ''' <summary> ''' abbreviated name for August ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME8 = 76 ' ''' <summary> ''' abbreviated name for September ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME9 = 77 ' ''' <summary> ''' abbreviated name for October ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME10 = 78 ' ''' <summary> ''' abbreviated name for November ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME11 = 79 ' ''' <summary> ''' abbreviated name for December ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME12 = 80 ' ''' <summary> ''' Native abbreviated name for 13th month, if it exists. ''' </summary> ''' <remarks></remarks> LOCALE_SABBREVMONTHNAME13 = 4111 ' End Enum End NameSpace
18 mai 2006 à 17:46
Après tout, comme j'ai que 14 ans, je suis pas un pro :)
Et si j'ai l'ai fait pour rien, je me suis amusé tout de même.
Fremy
17 mai 2006 à 23:00
Je pense que tu t'es amusé a trouver cette API pour rien.
Car les paramétres régionaux sont disponibles avec les methodes
Thread.CurrentThread.CurrentCulture sous dotnet
Et pour obtenir le separateur numerique ou le changer
il faut passer par
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator
cf
http://www.vbfrance.com/codes/MODIFICATION-SEPARATEUR-DECIMAL-SANS-API-JSUTE-AVEC-FRAMEWORK_26570.aspx
Tu peux obentir et modifier les autres paramètres comme le séparateur de milliers le format de date, ... et tout cela pour le thread courant sans modifier les parametres de la machine.
Et sans utiliser les API.
Merci quand même pour l'API, ca peut aider.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.