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
Ir a la versión completa