Power Builder - Modificar valor de la cofiguración regional

 
Vista:

Modificar valor de la cofiguración regional

Publicado por Guillermo (68 intervenciones) el 28/07/2006 15:44:07
Estimados amigos, me gustaría saber si alguien de Uds. sabe como tomar en una variable la configuración regional de windows, para luego cambiarlas por scrip.

Muchas Gracias,

Saludos,

Guillermo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Modificar valor de la cofiguración regional

Publicado por Jorge (900 intervenciones) el 28/07/2006 16:55:45
Hola..

te copio algunos ejemplos
tenes que utilizar RegistryGet y RegistrySet

// Chequeo de Internacional . y ,

ls_hkey= "Hkey_Current_user\Control Panel\International"

//Consulta
IF RegistryGet(ls_hkey, "sDecimal", RegString!, ls_chek) = -1 THEN
MessageBox("Decimal","No se encuentra entrada en la Registry")
end if

IF RegistryGet(ls_hkey, "sThousand", RegString!, ls_chek1) = -1 THEN
MessageBox("Miles","No se encuentra entrada en la Registry")
end if

If Ls_Chek <> "." Then
// RegistrySet(ls_hKey, "sDecimal", RegString!,'.' )
end if

If Ls_Chek1 <> "," Then
// RegistrySet(ls_hKey, "sThousand", RegString!,',')
end if

//MessageBox("Seteos","" + "Dec " + ls_chek + "Coma " + ls_chek1)
//IF RegistryGet(ls_hkey, "sShortdate", RegString!, ls_chek2) = -1 THEN
// MessageBox("Fecha","No se encuentra entrada en la Registry")
//else
// MessageBox("Fecha","Ok " + Ls_Chek2)
//end if
// Graba en la Registry
//RegistrySet(ls_hKey, "sDecimal", RegString!,',' )
//RegistrySet(ls_hKey, "sThousand", RegString!,'.' )
//RegistrySet(ls_hKey, "sShortdate", RegString!,'dd/MM/yyyy')

Saludos desde Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificar valor de la cofiguración regional

Publicado por Guillermo (68 intervenciones) el 28/07/2006 17:07:39
Muchisimas Gracias Jorge!!!!

Saludos,

Guillermo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificar valor de la cofiguración regional

Publicado por Guillermo (68 intervenciones) el 28/07/2006 21:02:40
Como puedo modificar esto utilizando los Apis de Windows, en la libreria Kernell32.dll hay una funcion que se llama GetLocaleInfoA pero no se que valores pasarle para que haga lo que quiero, modificar la coma por el punto, como separador decimal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificar valor de la cofiguración regional

Publicado por Guillermo (68 intervenciones) el 28/07/2006 21:03:10
Como puedo modificar esto utilizando los Apis de Windows, en la libreria Kernell32.dll hay una funcion que se llama GetLocaleInfoA pero no se que valores pasarle para que haga lo que quiero, modificar la coma por el punto, como separador decimal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificar valor de la cofiguración regional

Publicado por Jorge (900 intervenciones) el 31/07/2006 17:48:39
Hola

Creo que esta api recupera la informacion del lenguaje
mira este ejemplo en VB

Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_SENGCOUNTRY = &H1002 ' English name of country
Const LOCALE_SENGLANGUAGE = &H1001 ' English name of language
Const LOCALE_SNATIVELANGNAME = &H4 ' native name of language
Const LOCALE_SNATIVECTRYNAME = &H8 ' native name of country
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
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
MsgBox "You live in " & GetInfo(LOCALE_SENGCOUNTRY) & " (" & GetInfo(LOCALE_SNATIVECTRYNAME) & ")," & vbCrLf & "and you speak " & GetInfo(LOCALE_SENGLANGUAGE) & " (" & GetInfo(LOCALE_SNATIVELANGNAME) & ").", vbInformation
End Sub
Public Function GetInfo(ByVal lInfo As Long) As String
Dim Buffer As String, Ret As String
Buffer = String$(256, 0)
Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer))
If Ret > 0 Then
GetInfo = Left$(Buffer, Ret - 1)
Else
GetInfo = ""
End If
End Function


Pero te comento que con la registry no he tenido
problemas.

Comentanos que necesitas..

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Modificar valor de la cofiguración regional

Publicado por Guillermo (68 intervenciones) el 01/08/2006 23:02:46
Lo que hice con el Api de windows, funciona a medias, me modifica los valores del Simbolo decimal y del simbolo de separacion de miles, pero los cambios no tienen efecto a no ser que cierre la aplicacion y lo abra de vuelta, y yo necesito que acepte el cambio durante la ejecucion. Lo que hice es esto:

////Funciones Extenas
FUNCTION ULong GetThreadLocale() LIBRARY "KERNEL32.DLL"

FUNCTION Long GetLocaleInfoA( ULong Locale, &
Long LocaleNumber, &
ref string LocaleInfo, &
Int BufferSize) LIBRARY "KERNEL32.DLL"

FUNCTION Long SetLocaleInfoA( ULong Locale, &
Long LocaleNumber, &
ref string LocaleInfo)
LIBRARY "KERNEL32.DLL"

////Scrip
String ls_result, ls_coma, ls_punto
ULong ll_locale

ll_locale = GetThreadLocale()
ls_result = space(30)
ls_coma = ","
ls_punto = "."

GetLocaleInfoA(ll_locale, 14, ls_result, Len(ls_result))

if ls_result = "," then
SetLocaleInfoA(ll_locale, 14, ls_punto)
end if

GetLocaleInfoA(ll_locale, 15, ls_result, Len(ls_result))
if ls_result = "." then
SetLocaleInfoA(ll_locale, 15, ls_coma)
end if

Saludos,

Guillermo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar