Pregunta: | 66073 - SETENVIRONMENTVARIABLEA |
Autor: | Jesica Brites |
Hola mi nombre es jesica, Explicacion: La idea es realizar mejoras en un sistema para evitar la necesidad de configurar variables de entorno en la regedit de manera de no efectar el entorno para otros sistemas convivientes. Lo que se quiere hacer es setear las variables de entorno desde adentro de la aplicación de powerBuilder 12.5, con un win7 o XP. Se supone que corresponde usar la función SetEnvironmentVariableA, pero no logro que haga su trabajo, luego de convocarla las variables de entorno pero las mismas no son seteadas correctamente. Se probo tanto en Windows 7 como en XP, aquí paso un ejemplo del código probado, la variable ls_formato_ora_lang nos queda con valor *UNDEFINED*. La variable ll_control queda con valor 1. //Declaracion de local external function Function long SetEnvironmentVariable(string lpName , string lpValue ) Library "kernel32.dll" Alias for "SetEnvironmentVariableA" String ls_variable, ls_valor, ls_formato_ora_lang Long ll_control ls_variable=' NLS_LANG' ls_valor=''AMERICAN_AMERICA.US7ASCII ' ll_control=SetEnvironmentVariableA(ls_variable, ls_valor) ContextKeyword lcxk_base string ls_bandera string ls_values[] this.GetContextService("Keyword", lcxk_base) //Se controla variable de entorno NLS_LANG lcxk_base.GetContextKeywords("NLS_LANG", ls_values) IF Upperbound(ls_values) > 0 THEN ls_formato_ora_lang = ls_values[1] ELSE ls_formato_ora_lang = "*UNDEFINED*" END IF IF ls_formato_ora_lang <> 'AMERICAN_AMERICA.US7ASCII' THEN MessageBox("Atención!", "El Idioma en el Cliente Oracle 11 es incorrecto (" & + ls_formato_ora_lang + ")" ,StopSign!) RETURN -1 END IF |