Hola,
Navegando de nuevo un poco en los Foros, por los últimos días se ha vuelto más constante un problema con Windows Media Player 12 específicamente en Windows 7, a continuación como he tratado siempre les mostraré la reproducción del problema y el proceso a su posible solución.
*Nota: La llave de registro para solventar el inconveniente se puede descargar al final del artículo pero se DEBE seguir el procedimiento descrito en “La solución” dependiendo de la arquitectura que se tenga (32 ó 64 bits) antes de aplicar la llave para que pueda funcionar.
El problema
En Windows 7 al tratar de abrir Windows Media Player desde la barra de tareas (Predeterminádamente está anclado en la instalación del sistema operativo) o desde su ubicación en Todos los programas “trata” de abrir pero no muestra interfaz, y se desvanece:
Además de esto si se trata de reproducir un archivo de audio o video después de unos segundos Windows indica un error que indica error en la ejecución del servidor similar a este:
“Error en la ejecución del Servidor (Server execution failed)”
Indentificando la causa
En primera instancia como casi siempre es bastante complicado determinar qué está causando el problema y mucho menos el por qué.
Por lo general un buen camino es identificar qué se hizo antes cuando la aplicación funcionaba correctamente, algunas veces se debe a instalación de ciertas aplicaciones y se resuelve con sólo desinstalarlas.
Sin embargo en casos como este que puede no ser la solución desinstalar lo que había hay que indagar más a fondo puesto que el mensaje de error (Como muchas veces) no es muy claro en el problema. Para llegar al fondo por supuesto recurrí al famoso Process Monitor de Windows Sysinternals puesto que requería saber qué estaba sucediendo a nivel de entradas y salidas internamente cuando ejecutaba Windows Media Player.
Como Process Monitor identifica absolutamente todo lo que hay por debajo debemos “filtrar” lo que necesitamos, para esto al ejecutarlo, clic en el menú Filter y seleccionar Filter.. o símplemente la combinación de teclas CTRL + L
En la ventana de Process Monitor como estamos siguiendo al Windows Media Player debemos hacer el filtro Por proceso y especificando el del propio reproductor que es wmplayer.exe
En la primera columan seleccionamos “Process name” y en el cuadro de texto digitamos wmplayer.exe, posteriórmente clic en el botón Add, Apply y finalmente en el botón Ok para guardar los cambios.
Por último hay que detener el monitoreo actual que está haciendo Process Monitor con la combinación de teclas CTRL + E o en el menú File y seleccionar Capture Events…
Después de esto hay que limpiar los resultados actuales con la combinación CTRL + X para que todos los resultados al empezar el monitoreo pertenezcan sólo a la operación que se esté realizando.
Una vez limpio todo volvemos a ejecutar CTRL + E o Capture Events desde el menú File y a continuación “reproducirmos el problema”, pero como en este caso en principio no lo tenía lo que hice fue símplemente ejecutar el Windows Media Player así abriera normalmente para saber cuál era el proceso correcto de ejecución “por debajo”.
Al abrir el Media Player (o para otras personas al reproducir el error, es decir tratar de abrirlo) se debe volver a detener el monitoreo para poder tener el Log preciso desde que se inicio hasta que se terminó y que no registre más tareas, para esto basta con volver a presionar CTRL + E.
Ahora, personalmente como no tenía el error, para saber la solución primero tenía que reproducirlo por lo que la búsqueda se hace un poco más dificultosa.
Lo primero que tuve en cuenta en esta ocasión es que probáblemente no se refería a un problema de configuración ni de máquina ni de usuario del Media Player puesto que el proceso ejecutaría y aunque hubiera error la interfaz abriría por lo que quedaron descartadas todas las llaves que provinieran de HKCU (HKEY_CURRENT_USER) y HKLM (HKEY_LOCAL_MACHINE) que se refieren a configuración por usuario y por máquina respectivamente en cuanto a Windows y aplicaciones.
Para variar además no seguí el consejo y la mejor práctica que es empezar a analizar la Traza de abajo hacia arriba sino que esta vez fui bajando poco a poco hasta encontrar la operación en registro que no estuviera ligada a estas dos llaves, para mi fortuna o sorpresa lo que encontré:
Como ven la primera referencia diferente llevaba a: HKEY_CLASSES_ROOTInterface{00000134-0000-0000-C000-000000000046}
*Nota: Como ven hay referencias a HKCU (Que antes la había obviado) pero el resultado aquí si hacen el monitoreo verán que es NAME NOT FOUND por lo que no está creada esta llave en este directorio y pasa a la llave “Padre” HKCR que sí daba resultado SUCCESS.
Además de esto, tal cual sucede con un trabajo sobre una base de datos habían varias operaciones sobre una subclave en especial ProxyStubClsid32 que incluía abrir, consultar, validar y cerrar por lo que definitívamente algo bueno debía traer esta llave.
Para ir diréctamente a la llave basta con hacer clic derecho desde el Process Monitor y seleccionar Jump to…
Como en mi equipo estaba funcionando bien el Media Player tenía que buscar la forma de reproducir el error tal cual, por supuesto procedí a la forma más práctica, dañando!
Lo que hice fue borrar esa llave del Registro de Windows con el Media Player previamente cerrado y después tratar de ejecutar el Reproductor.
Para mi fortuna, ¡Problema reproducido! no me abría el reproductor y además al ejecutar archivos me encontraba con el error de fallo en la ejecución del servidor.
En conclusión la causa entonces podría ser falta de registro de esa interfaz del Media Player, o bien que ya se encontraba corrupta (Basta con cambiar algún parámetro en la clave).
*Importante:
Si buscan este mismo comportamiento en un equipo Windows 7 de 64 bits encontrarán que la ruta de registro varía un poco con respecto a la anterior agregando antes de Interface el Wow6432Node:
HKEY_CLASSES_ROOTWow6432NodeInterface{00000134-0000-0000-C000-000000000046}
La explicación es que Windows 7 de 64 bits utiliza el componente de WOW64 para virtualizar aplicaciones de 32 bits en sistemas de 64 bits, y aunque el sistema operativo predeterminádamente tiene el Reproductor y otras aplicaciones en 64 bits lo hace por temas de compatibilidad principalmente.
Teniendo en cuenta lo anterior, la solución a continuación va a tener un proceso similar pero unico dependiendo de si tienen sistema de 32 ó sistema de 64 bits.
La solución (Para sistemas de 32 bits):
1. Abrimos el Registro de Windows haciendo clic en inicio, tecleando Regedit y clic derecho sobre el ejecutable, “Ejecutar como administrador” o bien desde el Process Monitor vamos diréctamente a la llave haciendo clic derecho y Jump to.
– Navegamos hasta la llave:
HKEY_CLASSES_ROOTInterface{00000134-0000-0000-C000-000000000046}
2. Clic derecho sobre la llave y seleccionamos Permisos (Permissions):
3. En la ventana de Permisos hacemos clic en el botón Avanzado (Advanced):
4. En la ventana de Configuraciones avanzadas de seguridad clic en la pestaña Propietario (Owner) y debajo de Cambiar Propietario actual (Change Current owner) debemos seleccionar el usuario local nuestro que pertenece al grupo de administradores (Para este artículo DemoMig):
Clic en el botón Aplicar (Apply) para que se cambie el Propietario actual (Current owner) y posteriormente clic en el botón Aceptar (Ok) para guardar cambios y cerrar la ventana.
5. De vuelta en la ventana de Permisos seleccionamos el grupo de Administradores (Que es donde debe estar nuestra cuenta de usuario) y debajo de Permisos para los Administradores debemos seleccionar la ficha de Control total, luego el botón Aplicar y Aceptar para guardar los cambios:
6. Ahora que la llave principal tiene permisos totales debemos asegurarnos que las subllaves tengan los mismos permisos, es decir, control total.
Expandimos con el icono (>) sobre la llave de Interface en la que estamos y repetimos los pasos del 2 al 5 nuevamente.
*Nota 1: Puede que no tengan que cambiar permisos pero sí asegurarnos que el propietario sea el usuario actual, aunque en teoría modificando la llave primaria las demás obtienen los mismos permisos.
*Nota 2: Puede (Y sería normal) que algunas personas que tengan el problema no posean las mismas subllaves, en este caso el proceso se hace a las que hayan.
7. Ahora que tenemos el control total sobre la llave afectada debemos proceder a cambiarla para importar una que tenga los componentes de interfaz registrados corréctamente, para este caso de 32 bits he subido la llave de Registro a mi Skydrive para que la descarguen, descompriman y ejecuten, la pueden bajar desde aquí:
*Importante:
Para tener buenos resultados, al ejecutar la llave de registro les debe informar que se importó todo satisfactóriamente:
*La ruta que se muestra y nombre de registro varía en cada máquina.
Si les indica que NO se pudieron escribir registros correctamente deben repetir de nuevo los pasos anteriores para tomar propiedad sobre la llave y asignar permisos ya que indica que no todas las llaves obtuvieron los cambios, posteriormente volver a ejecutar la llave hasta que el resultado sea satisfactorio.
Después de esto ejecutamos nuevamente el Reproductor de Windows y esta vez debería abrir sin problemas =)
La solución (Para sistemas de 64 bits)
1. Abrimos el Registro de Windows haciendo clic en inicio, tecleando Regedit y clic derecho sobre el ejecutable, “Ejecutar como administrador” o bien desde el Process Monitor vamos diréctamente a la llave haciendo clic derecho y Jump to.
– Navegamos hasta la llave:
HKEY_CLASSES_ROOTWow6432NodeInterface{00000134-0000-0000-C000-000000000046}
2. Repetimos los mismos pasos especificados anteriormente en “La solución (Para sistemas de 32 bits)” desde el punto 2 hasta el punto 6
3. Ahora que tenemos el control total sobre la llave afectada debemos proceder a cambiarla para importar una que tenga los componentes de interfaz registrados corréctamente, para este caso de 64 bits he subido la llave de Registro a mi Skydrive para que la descarguen, descompriman y ejecuten, la pueden bajar desde aquí:
*Nota: Aunque es casi el mismo procedimiento los registros a descargar y a aplicar son diferentes!
*Importante:
Para tener buenos resultados, al ejecutar la llave de registro les debe informar que se importó todo satisfactóriamente:
*La ruta que se muestra y nombre de registro varía en cada máquina.
Si les indica que NO se pudieron escribir registros correctamente deben repetir de nuevo los pasos anteriores para tomar propiedad sobre la llave y asignar permisos ya que indica que no todas las llaves obtuvieron los cambios, posteriormente volver a ejecutar la llave hasta que el resultado sea satisfactorio.
Después de esto ejecutamos nuevamente el Reproductor de Windows y esta vez debería abrir sin problemas =)
Espero que les pueda ser de utilidad, si alguien entra aquí, sigue el procedimiento y puede solucionar el problema, así también como si no puede solucionar el problema ¡Comentarios bienvenidos!
Saludos,
Checho