Inicio > Power Builder > ljmartinezf > Como saber la version de Windows

Como saber la version de Windows

Experto:
ljmartinezf
Usuario:
Fecha: 06/09/2008
Valoración: (3,00 sobre 5) Categoría: Power Builder
06/09/2008
jhipolito, usuario preguntando en Power Builder
Usuario
Hola, me llamo Jorge.

Mi pregunta es la siguiente:
Necesito saber el sistema operativo sobre el que se ejecuta mi aplicacion PB. es decir necesito diferenciar entre W95 / Nt /2000...

La función de PB GetEnvironment(lenv_env) no me sirve pues no diferencia entre NT y 2000. He intentado llamar al API de Windows, por lo visto la función : Function boolean GetVersionEx (ref OSVERSIONINFO lpVersionInformation) library "kernel32" devuelve dentro de la estructura que se le pasa por referencia lo que necesito. El problema es que no la hago funcionar.

Tambien he intentado sacar la información del registro de windows, pero no encuentro ningún valor que me aseguro lo que busco.

¿puedes ayuidarme? Gracias
06/09/2008
jhipolito, experto respondiendo en Power Builder
Experto
Hola,

Yo hubiera hecho lo mismo que tu, usar GetEnvironment, pero supongo que la version de PB que usas debe ser anterior a Windows 2000. Es probable que con la version 8 de PB que acaba de salir te funcionara GetEnvironment, pero dudo que te arriesgues (yo tampoco lo haria). Llamar a funciones de la API de Windows puede ser complicado, mas que nada porque el mapeo de tipos de variables C a tipos PowerBuilder es dificil. Existe un documento en la Web de Sybase de acceso gratuito donde explica todos los detalles sobre el tema. Tendrias que consultar la definicion C de la estructura OSVERSIONINFO, e intentar crear una estructura PB equivalente. Existe otra opcion bastante mas sencilla, se trata de crear una DLL intermedia que acceda a la API de Windows, y llamarla desde PB pasandole argumentos sencillos. En la cabecera de la DLL que contenga tu funcion puedes importar las definiciones de tipos y funciones del API de Windows.
Lo unico es haber usado alguna vez un compilador de C, el Visual C++ por ejemplo.
Es probable que alguien haya tenido tu mismo problema y lo haya solucionado, por lo que podrias consultar los grupos de PB de Goggle, o las webs dedicadas a PB.
En cuanto al registro, no se si existe alguna clave que informe de la version, ni idea.

Saludos
06/09/2008
jhipolito, usuario preguntando en Power Builder
Usuario
Bien. Una respuesta aceptable.
Enlaces patrocinados