Finalmente he tenido la oportunidad de poder instalar
Windows Vista edicion
Home Basic (la edicion mas baja de las 6 ediciones disponibles, sin contar con la edicion Starter, similar a un Windows XP Home Edition) en una maquina virtual
VMware a falta de un disco duro extra o un equipo a parte para hacer una instalacion real, y he aprovechado entre otras cosas ha testear mis desarrollos en
Visual Basic 6.0, entre ellos el que mas me interesaba que era la
dx_lib32.
Despues de unas cuantas peleas con el tema de registrar componentes
ActiveX el resultado ha sido satisfactorio. Para el que no lo sepa todavia para poder añadir al registro de
Windows un componente (OCX) o libreria
ActiveX (DLL), ya sea de forma manual a traves de la utilidad
REGSVR32.EXE, mediante el
API de Windows, o mediante una instalacion, se han de tener permisos de administrador, cosa que hasta
Windows XP ha sido facil debido a que en Windows el usuario por defecto siempre ha sido el administrador de la maquina por lo que no tenia restricciones sobre las operaciones sobre el sistema. En
Vista esto cambia, ahora el usuario por defecto ya no dispone de todos los permisos de administrador por motivos de seguridad, por lo que el registro de
ActiveX se queda capado. La unica forma de momento que he encontrado es iniciar
Windows Vista en
modo seguro ya que en este modo siempre tendremos la posibilidad de iniciar sesion como administrador. A partir de aqui, como siempre, dispondremos de los metodos de siempre para registrar libremente un componente en el sistema.
Dicho esto, queda avisado de que la utilidad de registro que incluye la distribucion de
dx_lib32 no funcionara en una sesion normal de
Windows Vista a no ser que la ejecutemos con la opcion
Ejecutar como administrador que es una via mas rapida que la de iniciar en
modo seguro:

De esta manera, si nuestro programa tiene que ejecutar operaciones que requieran privilegios de administrador podra llevarlos a cabo. En este caso se registraria asi
dx_lib32 en el sistema.
Otro aviso es que, como me temia, no vienen instaladas de serie en
Windows Vista con el nuevo
DirectX10 los componentes
COM que permiten acceder a la
API de
DirectX7 (dx7vb.dll) y
DirectX8 (dx8vb.dll) desde
Visual Basic 6.0, dependencias necesarias para ejecutar
dx_lib32. Estas se tienen que añadir manualmente junto a
dx_lib32 en el proceso descrito antes. A partir de la proxima revision de
dx_lib32 estas librerias vendran junto a
dx_lib32 en el directorio
BIN por si fuese necesario instalarlas y programare la utilidad de registro para que registre opcionalmente si se le especifica estas librerias.
Una vez logrado registrar la
dx_lib32 en el sistema, ejecute todos los tutoriales de
dx_lib32 a excepcion de los tutoriales de la clase
dx_GFX dado que la maquina virtual no puede emular la aceleracion grafica de
Direct3D, via que aprovecha
dx_GFX para ejecutar sus rutinas graficas. Todos los tutoriales funcionaron a la perfeccion sin dar problema alguno. Los tutoriales graficos deberian funcionar igualmente dado que el resto de librerias de
DirectX8 estan presentes en
DirectX10. Aun asi, si alguien dispone de una version de
Windows Vista, Release Candidate o Final, instalacion real, no emulada, estaria bien que hiciera las pruebas.
Otra pureba que si realize y fue igualmente satisfactoria en lo que respecta al problema de registros de de
ActiveX en sesion de usuario en
Vista fue testeando
esta version de mi proyecto
TLSA Engine que lleva inyectadas las dependencias minimas para ejecutarse en
Windows 98 y
Vista* (msvbvm60.dll, oleaut32.dll, dx7vb.dll*, dx8vb.dll*, dsetup.dll y dxlib32.dll) en el propio codigo del ejecutable gracias a esta
herramienta y que sin tener instalada la
dx_lib32 ni los componentes
COM de
DirectX para
Visual Basic 6.0 este se ejecuto correctamente sin echar en falta ninguna libreria ni lanzar un error de creacion de objetos ni errores relacionados.
Este metodo no solo facilita la distribucion en el resto de versiones de
Windows si no que evita el problema de no poder instalar comodamente cualquier desarrollo que hagamos en
Windows Vista. En caso de hacer una instalacion para
Windows Vista y que esta permita registrar nuestros componentes desde una sesion normal de usuario podeis consultar
este articulo de la
MSDN que describe algunos consejos y pasos a seguir para generar instalaciones con permisos de administrador para
Windows Vista con el sistema
MSI de instalacion de
Windows.
Resumiendo:
1. Para ejecutar un programa con
dx_lib32 en
Windows Vista hay que añadir como dependecias las librerias
dx7vb.dll y
dx8vb.dll y registrarlas en el sistema.
2. Para registrar componentes
ActiveX en
Windows Vista se debera iniciar
Windows en
modo seguro.[/list]
Cualquier comentario, duda o informacion extra que tengais y no este indicada en este articulo no dudeis en escribirla.
Salu2...
Enlaces relacionados:
Sobre la compatibilidad de Visual Basic 6.0 y Windows Vista (elGuille -
http://www.elguille.info/)
Enseñe a sus aplicaciones a ejecutarse sin problemas con el control de cuentas de usuario de Windows Vista (MSDN Magazine -
http://msdn.microsoft.com/msdnmag/)