Ayer planteaba Quili en en ciertos comentarios que NeoDouble le había dejado de funcionar en Windows 98, que no podía cargarlo en Neobook.
Luego de no pocas pruebas (en las que me ha echado una mano el propio Quili puedo decir que he dado con el error que causaba tamaño desaguisado. Un error grave, puesto que impedía usar el plugin en absoluto.
¿Dónde estaba el problema? Pues el problema lo había traido la acción "npMostrarMensajeOSD", indirectamente. Resulta que esta acción hace uso de la función "SetLayeredWindowAttributes" del API de Win32, pero, esta función sólo está disponible a partir de Windows 2000.
Pero el problema no era del todo ese, porque, si no se usaba dicha acción, ¿cómo es que aún así no se dejaba cargar el plugin? Pues bien, porque la función estaba siendo referenciada, por decirlo así, fuera de la rutina en que se usa.
Dicha referencia se trataba de trazar en el momento de la carga del plugin (esto es algo que he aprendido nuevo, mira) y de ahí el problema, puesto que, como digo, en Windows 98, por ejemplo, no se encuentra la función susomentada en la librería "user32.dll", donde está a partir de Windows 2000.
Vale. ¿Pero entonces se arregló el problema o no? Efectivamente, el plugin puede ya cargar en Windows 98 (o eso espero, yo lo he probado en Windows ME, dentro de una máquina virtual), pero, evidentemente, no podrá usarse la acción "npMostrarMensajeOSD" desde este sistema operativo.
¿Pero por qué? Porque la acción en cuestión crea una ventana transparente en el sistema, necesita hacerlo, y sólo a partir de Windows 2000 se ofrece soporte por parte de Windows para algo así. De modo de que, aunque la acción no produzca error alguno, tampoco funcionará como se espera, repito, en Windows 9x.
¿Y no hay solución? Podría ser. Tal vez podría conseguirse crear una ventana transparente en Windows 9x sin hacer uso de "SetLayeredWindowAttributes", pero,... por lo que he buscado no parece sencillo en absoluto, y, aunque encontrara una forma, ignoro si al cabo funcionaría bien.
Así que, por el momento, voy a dejarlo aquí. He estado todo el día liado con máquinas virtuales, instalando Windows ME, tratando de instalar Windows 98, enviando pruebas a Quili y este haciendo lo propio probándolas... en fin, que ahora mismo no me apetece en absoluto continuar con esto.
Ahora bien, el problema de Quili está solucionado (o eso espero, ha de confirmarlo) y de todos aquellos que usen el plugin NeoDouble en Windows 9x. Creo (ahora mismo no recuerdo exactamente) que la acción "npMostrarMensajeOSD" es la única actualmente que sólo funcionará en Windows 2000 y superiores.
Publicada el 31/7/2007 00:02 AM por David Esperalta
Suscribirse a esta entrada - URL para Trackbacks
Me alegro que hallas encontrado el problema, esta tarde probare el plugin y te diré como me va. Respecto a la acción “npMostrarMensajeOSD” en plataformas que no corren con NT mi opinión es que lo dejes como esta, ya bastante te has molestado en que el plugin funcione con sistemas operativos antiguos. Te doy MUCHAS GRACIAS por preocuparte por la comunidad que utiliza sistemas como pueden ser Windows 98 o Windows ME.(dicha comunidad como dirían otros “una inmensa minoría”) Recibe un gran saludo.
Hola Quili, Bueno. Hoy es otro día, y mañana otro aún, y, desde luego, pienso echar un vistazo a las alternativas que existen en Windows 9x, a ver si de alguna forma es posible sustituir la función que se usa en la acción y que sólo está disponible a partir de Windows 2000. No sé si encontraré o no una solución, pero, desde luego, pienso intentarlo, de eso puedes estar seguro Quili. Yo también te agradezco a ti las molestias que has tenido que tomarte. Mirándolo hoy, más tranquilamente, tú también estuviste ayer metido en el ajo, como suele decirse. Saludos Quili. PD. Respecto de que son sistemas operativos antiguos... pues hombre, el mismo XP que yo uso es del año 2001... pero, como he comentado ya por aquí, una cosa no quita la otra: salvo que se encuentre alguna incompatibilidad como esta de que hablamos, lo cierto es que los plugins han de funcionar en Windows 9x. Antiguos o no, los plugins deben funcionar también en esas versiones de Windows, y no se trata de que lo diga yo, sino de que emplean la misma API de Windows, o parten de la misma API. En definitiva, tal vez algunas cosas no puedan conseguirse en sistemas no NT (por ejemplo, el asunto de las ventanas transparentes es algo que depende de Windows: en 2000 y superiores hay soporte para ellas, antes no lo había), pero, estas deben ser localizadas y "marcadas", para que se sepa, cuando menos, si es que no se puede encontrar alguna alternativa. Como tú mismo puedes comprobar, el resto del plugin NeoDouble funciona como se espera en tu Windows 98 (o eso parece, vaya) y así debe ser. De hecho el "problema" que he encontrado espero quedármelo en la cabeza. Quiero decir, que ni yo mismo sabía que podía darse algo así, pero, se da, por lo visto, así que algo he aprendido de todo esto. Y tengo que agradecértelo a ti Quili.