• Viernes 29 de Marzo de 2024, 12:03

Autor Tema:  Como reconocer la conf. regional y de idioma del PC por code  (Leído 1455 veces)

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Como reconocer la conf. regional y de idioma del PC por code
« en: Jueves 19 de Marzo de 2009, 22:56 »
0
Hola a todos...

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

Código: Visual Basic
  1. 'Declaraciones del Api
  2.    Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
  3.    
  4.    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" ( _
  5.         ByVal Locale As Long, _
  6.         ByVal LCType As Long, _
  7.         ByVal lpLCData As String, _
  8.         ByVal cchData As Long) As Long
  9.    
  10.    'Constante para obtener algunos de los simbolos de la configuración regional
  11.    
  12.    Public Const LOCALE_SDECIMAL As Long = &HE
  13.    Public Const LOCALE_SMONDECIMALSEP As Long = &H16
  14.    
  15.  
  16.  
  17. ' Función que Devuelve un String con el símbolo
  18. Function Obtener_Simbolo(Valor As Long) As String
  19.    
  20.    Dim Simbolo As String
  21.    
  22.    Dim r1 As Long
  23.    Dim r2 As Long
  24.    Dim p As Integer
  25.    Dim Locale As Long
  26.    
  27.    Locale = GetUserDefaultLCID()
  28.    r1 = GetLocaleInfo(Locale, Valor, vbNullString, 0)
  29.    
  30.    'buffer
  31.    Simbolo = String$(r1, 0)
  32.    
  33.    'En esta llamada devuelve el símbolo en el Buffer
  34.    r2 = GetLocaleInfo(Locale, Valor, Simbolo, r1)
  35.    
  36.    'Localiza el espacio nulo de la cadena para eliminarla
  37.    p = InStr(Simbolo, Chr$(0))
  38.    
  39.    If p > 0 Then
  40.       'Elimina los nulos
  41.       Obtener_Simbolo = Left$(Simbolo, p - 1)
  42.          
  43.    End If
  44.    
  45. End Function
  46.  
  47.  
  48. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ago 21 /2008 @@@@@@@@@@@@@
  49. '@@@@@@ Ahora solo debes poner esto en la parte donde quieras que identifique el punto     @@@@@@@@@@@@
  50. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Obtener_Simbolo(LOCALE_SDECIMAL) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  51.  

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
  1. 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
  2.             MsgBox("Tu computador usa el simbolo decial el punto (.)")
  3.         Else
  4.             MsgBox("Tu computador usa el simbolo decial el punto (,)")
  5.         End If
  6.  

Saludos.


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]

javierkcjm

  • Miembro activo
  • **
  • Mensajes: 48
  • Nacionalidad: ec
    • Ver Perfil
Re: Como reconocer la conf. regional y de idioma del PC por code
« Respuesta #1 en: Lunes 13 de Abril de 2009, 18:30 »
0
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