El problema que ocurría era que aparecía el siguiente error al tratar de abrir el Reproductor de Windows Media:
Tengo constancia de que tres son las DLLs que, estando incorrectamente registradas, producen el error descrito:
- Jscript.dll
- Vbscript.dll
- Wmp.dll
El registro de las dos primeras se realizó correctamente; pero la tercera se resistía, aparecía el error 0x8002801c, mostrado a continuación:
Vaya, un código de error no muy común, ¿qué "tripa" se le habrá roto a Windows?
Para conocer a fondo el motivo le pedí al usuario el reporte generado por Dependency Walker (www.dependencywalker.com), una pequeña aplicación muy útil para examinar dependencias de archivos. El reporte de Dependency Walker ofrecía algo de luz sobre el asunto en su última línea:
Exited "REGSVR32.EXE" (process 0x85C) with code 5 (0x5).
El código 0x5 significa "Acceso denegado", pero aparentemente ningún archivo exhibía ese código de error en el reporte de Dependency Walker. El problema quizá estuviera en el Registro.
Regmon es una utilidad de Sysinternals (www.sysinternals.com) capaz de monitorizar todos los accesos al Registro, así que le pedí al usuario el fichero LOG que generó Regmon en su sistema mientras procedía con el registro de la DLL. Presto me dispuse a cargar el reporte en Regmon (es bastante arduo leerlo en texto plano en el Bloc de notas, por ejemplo) y me encontré con esto:
Ajá, el sistema no pudo manipular la citada clave del Registro, que curiosamente está relacionada con el Reproductor de Windows Media. En este caso habría que verificar que el usuario que ha iniciado sesión tuviera privilegios de control total sobre la clave, cosa que efectivamente no tenía.
Para ver los permisos aplicados sobre una clave de registro en Windows XP, desde el programa Regedit.exe (Editor del Registro) seleccione la clave deseada, pulse Edición, Permisos. |
Al modificar los permisos adecuamente, el archivo Wmp.dll se registró correctamente mediante la rutina regsvr32 wmp.dll y el reproductor se abrió sin problemas.
Para registrar una DLL en el Registro de Windows se debe emplear el ejecutable Regsvr32.exe y añadirle como parámetro la DLL (u otro fichero registrable) que queramos anexar en el Registro. Por ejemplo, para registrar el fichero Wmp.dll abra Inicio, Ejecutar, escriba regsvr32 wmp.dll y pulse Aceptar. Debería aparecer en pantalla un mensaje de confirmación acerca de que el registro se realizó con éxito. |
Espero que les haya parecido interesante, se trata de un ejemplo más de las bondades de Regmon, Dependency Walker y Filemon (aunque no se referencie aquí) como ayudas inestimables a la hora de resolver problemas con el PC.