Ultimamente he tenido la costumbre de ver muchos webcast o video postcast o peliculas o documentales o video tutoriales y todo tipo de videos que se pueden conseguir en la red asi como youtube y otros sitios de video, siempre habia tenido un problema de que cuando utilizas monitores alternos para ver algun video flash o streaming en pantalla completa automaticamente vuelve al tamanio original al momento de perder el foco por lo que es muy dificil estar viendo un video en pantalla completa y al mismo tiempo trabajando en el otro monitor, una pequenia busqueda con mi amigo google me dijo que al parecer la gente de flash no contemplo o no le parecio correcto el comportamiento de mantener la pantalla completa en el momento de perder el focus,
Las buenas noticias fueron de que no era ni remotamente la unica persona con este problema que mas que un problema era lo molesto de tener que ver el video en tamanio original o utilizar algun tipo de zoom integrado en los navegadores o todo tipo de trucos, bueno, lo primero que encontre fue que alguien habia parchado una dll de flash y logrado suprimir este molesto comportamiento por default en el siguiente enlace:
http://my.opera.com/d.i.z./blog/2009/04/22/watch-fullscreen-flash-while-working-on-another-screen Flash has annoying habit of closing fullscreen mode whenever “anything” happens. Like when wind blows through the window or there is an earthquake on another continent. No seriously, it closes whenever it looses focus. But that is still too sensitive. So here is a version of flash plugin that does not do that. It’s version 10.0.22.87 (latest at this time) with one byte changed (compare with original if you don’t believe me.
Excelente! ya solo era cuestion de descargar la dll parchada y remmplazarla en mi instalacion de flash y todo funcionaria de maravilla, boom! no tan sencillo como eso, cuando me di cuenta que la dll descargada no era compatible con mi version de falsh ya que yo tengo la version 10,1,53,64 y como podemos ver la dll era para versiones 10.0… etc.
triste situacion, bueno pues como ya no queria batallar con el comportamiento del mendigo flash pues segui mi busqueda del famoso parche para corregir este comportamiento lo que me llevo a la segunda pagina de contenido:
http://bramp.net/blog/full-screen-hack-for-flash
On win32 open C:\Windows\System32\Macromed\Flash\NPSWF32.dll On win64 open C:\Windows\SysWOW64\Macromed\Flash\NPSWF32.dllor if using Google Chrome (as Chrome now comes with the Flash plugin) open C:\Users\Andrew\AppData\Local\Google\Chrome\Application\6.0.408.1\gcswf32.dll or if using Google Chrome on Windows XP: C:\Documents and Settings\Andrew\Local Settings\Application Data\Google\Chrome\Application\6.0.408.1On version 10.1.53.38
Jump to offset 0×180227 and change bytes 74 2A to 90 90, and voila.On version 10.1.53.55
Jump to offset 0×180410 and change bytes 74 39 to 90 90, and voila.On version 10.1.53.64 (Chrome version)
Jump to offset 0×180753 and change bytes 74 39 to 90 90, and voila.On version 10.1.53.64 (Normal version thanks Medlir)
Jump to offset 0x180A15 and change bytes 74 39 to 90 90, and voila.Note this method is unsupported, and will most likely break when Flash gets updated again. It is always a good idea to backup any file first, and make sure you are on the same version as me.
For the curious this changes some code that looks like this:
if (msg == WM_KILLFOCUS) jump to kill_focus if (msg == WM_PAINT) jump to paintto
if (msg == WM_KILLFOCUS) nop nop if (msg == WM_PAINT) jump to paintand for some context the version 10.1.53.64 surrounding code looked like this:
74 39 83 E8 07 74 11 83 E8 05 75 13 8BThe 74s and 75 should be the same between versions, but all the other bytes might change.
Excelente! ahora si habia encontrado no un parche sino algo todavia mejor, los pasos para parchar tu dll del flash dependiendo de la version y de esa forma suprimir el comportamiento ya descrito, bueno busque un poco de mas informacion sobre el tema y me tope con un foro el cual describia un procedimiento de hacer el parchado siguiendo los pasos del post descrito arriba por lo que decidi aguegarlo aqui al blog y sumarle algunos screenshots para hacer el proceso accesible para cualquier persona ya que al final resulta sencillo seguir los pasos necesarios.
1. Lo primero que tenemos que hacer es checar nuestra version de flash la que puedes checar en el siguiente enlace http://www.adobe.com/software/flash/about/ el cual te proporcionara un cuadro como se muestra a continuacion con la version de tu flash

2. De acuerdo a la version de tu flash y al plugin que quieras parchar selecciona el path del post de arriba, en mi caso queria parchar el plugin de chrome por lo que la dll se encontraria en un path similar al C:\Documents and Settings\[Usuario]\Local Settings\Application Data\Google\Chrome\Application\[Version de Chrome]\
3. Una vez localizado el path en donde se encuentra la dll a parchar y sabiendo de antemano que el nombre de la dll es gcswf32.dll necesitamos un editor hexadecimal para hacer la modificacion necesaria como no lo indican los pasos arriba
4. El paso siguiente es instalar un editor para la dll yo utilice por recomendacion del foro el Hex Editor XVI32 el cual es freeware y puedes descargar de el siguiente enlace
5. A continuacion proseguimos a instalar el XVI32 Hex Editor y abrir la dll que ya tenemos identificada utilizando la opcion File->Open.. del editor como se muestra a continuacion:
6. Una vez abierta la dll y como lo dice en los pasos del post original nos vamos a la opcion de buscar en nuestro hex editor o simplemente le damos Ctr+F para desplegar el cuadro de dialogo de buscar para despues de eso teclear la siguiente cadena que se nos especifica en los pasos originales: 74 39 83 E8 07 74 11 83 E8 05 75 13 8B y presionamos el boton OK para realizar la busquda como se muestra a continuacion:
7. Despues de la busqueda nos aparecera seleccionado el registro que andamos buscando
8. Y ahora por ultimo tenemos que cambiar los bytes 74 y 39 que aparecen al inicio por 90 y 90 respectivamente, para hacer esto es muy sencillo, seleccionamos la casilla a modificar y nos vamos al menu Edit->Overwrite String->Hex String y tecleamos 90 y damos OK y para la siguiente casilla hacemos los mismo como se muestra a continuacion:
9. Por ultimo guardamos nuestro archivo modificado, es recomendable conservar el archivo dll original y hacer todos estos cambios en una copia del mismo de esta forma si algo no va bien solo restauramos el archivo original y no pasa nada
.
Al final del dia logre tener mi monitor extendido corriendo el plugin de flash en pantalla completa sin importar si sigo trabajando en la PC, y todo esto gracias a la web, a la gente que hace posible tener este tipo de procedimientos de parchado y a las ganas interminables de encontrar cosas interesantes por resolver..
Este post se extendio un poco pues quise tener registrados los pasos a seguir para lograr modificar el comportamiento del flash y aparte para poderlo compartir con la gente que le interesase, aunque todos estos pasos de hecho ya estaban documentados lo unico que hice fue anadir descripciones mas amplias e imagenes al proceso para hacerlo mas amigable para usuarios que no estan tan relacionados con este tipo de cambios..
Salduos!








[...] This post was mentioned on Twitter by yohan rodriguez, I'm a Bit… I'm a Bit.. said: Flash en pantalla completa en monitores extendidos http://bit.ly/d2RVSb [...]