CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Como reconocer la conf. regional y de idioma del PC por code

(1/1)

Jimbenit:
Hola a todos...

En VB6.0 la configuración regional y de idioma se obtenia asi:


--- Código: Visual Basic ---'Declaraciones del Api   Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long      Private 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      'Constante para obtener algunos de los simbolos de la configuración regional      Public Const LOCALE_SDECIMAL As Long = &HE   Public Const LOCALE_SMONDECIMALSEP As Long = &H16     ' Función que Devuelve un String con el símboloFunction Obtener_Simbolo(Valor As Long) As String      Dim Simbolo As String      Dim r1 As Long   Dim r2 As Long   Dim p As Integer   Dim Locale As Long      Locale = GetUserDefaultLCID()   r1 = GetLocaleInfo(Locale, Valor, vbNullString, 0)      'buffer   Simbolo = String$(r1, 0)      'En esta llamada devuelve el símbolo en el Buffer   r2 = GetLocaleInfo(Locale, Valor, Simbolo, r1)      'Localiza el espacio nulo de la cadena para eliminarla   p = InStr(Simbolo, Chr$(0))      If p > 0 Then      'Elimina los nulos      Obtener_Simbolo = Left$(Simbolo, p - 1)             End If   End Function  '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ago 21 /2008 @@@@@@@@@@@@@'@@@@@@ Ahora solo debes poner esto en la parte donde quieras que identifique el punto     @@@@@@@@@@@@'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Obtener_Simbolo(LOCALE_SDECIMAL) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
pero no se como hacer en el VB2005  :ouch: , aun soy nuevo en el .NET ya con el tiempo me pondré al dia...

Nota:
Hasta ahora no he colocado ninguna API de windows en aplicaciones .NET ya que me salen algunos errores en la ejecución de las mismas y pienso que no son posibles hacerlas (sobretodo cuando me es necesario utilizar el comando hwnd)... la "API" del VB6.0 debe existir en el VB2005 pero me imagino que no de la misma forma sino de forma de llamada de la biblioteca de clases del .NET... algo asi como:
--- Código: Visual Basic ---If My.Computer.Info.InstalledUICulture.PuntoDecimal Then            '<------- Ya se que la clase My.Computer.Info.InstalledUICulture.PuntoDecimal no existe, solo es un ejemplo de que es lo que quiero            MsgBox("Tu computador usa el simbolo decial el punto (.)")        Else            MsgBox("Tu computador usa el simbolo decial el punto (,)")        End If 
Saludos.

javierkcjm:
lo sacas de esta manera

System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator

ahi sacas el separador decimal de tu configuracion regioanl y si moneas(buscas) en las demas funciones esta el resto de informacion que necesitas

saludos cordiales

JC

Navegación

[0] Índice de Mensajes

Ir a la versión completa