Solución rápida: Abra Configuración → Aplicaciones → Aplicaciones predeterminadas → Elegir valores predeterminados por tipo de vínculo. Desplácese hasta el protocolo que desee (mailto, http, ms-teams, zoommtg, etc.) y elija la aplicación. Para los protocolos que no aparecen en la lista, edite el registro HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\<protocol>\UserChoice directamente.
Desea que los vínculos mailto: abran Thunderbird, no el nuevo Outlook. Desea que los vínculos zoommtg:// inicien el cliente de Zoom directamente sin el aviso del navegador. Windows 11 admite anulaciones de controlador por protocolo, pero la interfaz de Configuración oculta algunos protocolos y el resto requiere saber exactamente dónde buscar.
Afecta a: Windows 11 (y Windows 10).
Tiempo de solución: ~5 minutos por protocolo.
Qué causa esto
Windows 11 asigna cada protocolo de URL a una aplicación predeterminada mediante entradas de registro por usuario. La asignación se encuentra en HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\<protocol>\UserChoice y contiene dos valores: ProgId (el nombre del controlador registrado de la aplicación) y Hash (una firma de detección de manipulación). Si escribe solo el ProgId sin el Hash correspondiente, Windows considera que la entrada ha sido manipulada y la ignora, volviendo al valor predeterminado.
La interfaz de Configuración gestiona el cálculo del Hash de forma transparente. Pero solo expone los protocolos que Windows conoce por nombre: los esquemas de URI propietarios como zoommtg, slack, discord y spotify no aparecerán a menos que una aplicación los haya registrado explícitamente.
Método 1: Usar Configuración → Aplicaciones predeterminadas → Elegir valores predeterminados por tipo de vínculo
La ruta estándar. Funciona para cualquier protocolo que Windows conozca.
- Abra Configuración → Aplicaciones → Aplicaciones predeterminadas.
- Desplácese hasta la parte inferior y haga clic en Elegir valores predeterminados por tipo de vínculo. (En compilaciones anteriores de Windows 11, esto puede aparecer como Establecer valores predeterminados por protocolo.)
- La lista muestra todos los protocolos que Windows conoce: mailto, http, https, ftp, ms-officeapp, ms-teams, etc. Desplácese para encontrar el que desee.
- Haga clic en la entrada del protocolo. Aparecerá un selector con las aplicaciones instaladas que se han registrado para controlarlo.
- Elija su aplicación preferida. El cambio se aplica de inmediato.
- Para verificar: escriba el protocolo con dos puntos en el cuadro de búsqueda del menú Inicio (por ejemplo,
mailto:test@example.com) y presione Entrar. Debería abrirse la aplicación elegida.
Esta es la ruta estándar y correcta en cuanto al hash. Úsela siempre que el protocolo sea visible en la lista.
Método 2: Establecer el valor predeterminado desde la propia aplicación
Para cuando la aplicación proporciona su propio botón “Establecer como predeterminada”, a menudo la ruta más fiable porque la aplicación gestiona correctamente el cálculo del hash.
- Para clientes de correo (Thunderbird, eM Client): inicie la aplicación y busque en Herramientas → Opciones → General un botón como Establecer como predeterminada o Comprobar ahora. Haga clic en él.
- Para Zoom: Configuración → General → Usar Zoom como aplicación predeterminada para enlaces de clic para iniciar. Active la opción.
- Para Slack: la aplicación solicita en el primer inicio que se registre como controlador de los URI
slack://. - Para Microsoft Teams (nuevo): Teams pregunta durante la configuración si desea controlar los vínculos
ms-teams. Sí lo registra; No deja el controlador anterior. - Después de hacer clic en el botón dentro de la aplicación, Windows muestra una confirmación única: ¿Establecer esta como predeterminada? Confirme.
Esta ruta es infalible porque la aplicación proporciona su propio ProgId y Windows genera el hash. Úsela cuando esté disponible: es menos propensa a errores que la edición directa del registro.
Método 3: Usar SetUserFTA para cambios por protocolo mediante script
Para administradores que implementan valores predeterminados en varios equipos. La edición directa del registro no es fiable debido al hash; SetUserFTA realiza el cálculo del hash correctamente.
- Descargue SetUserFTA desde kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/ (utilidad gratuita, ampliamente utilizada en entornos empresariales).
- Extraiga en una carpeta, por ejemplo,
C:\Tools\SetUserFTA. - Busque el ProgId de su aplicación preferida. Consulte en el registro:
HKEY_CLASSES_ROOT\Applicationsy encuentre la entrada de su aplicación. El ProgId suele ser AppName.URL.protocol. - Ejecute desde un símbolo del sistema elevado:
SetUserFTA.exe mailto Thunderbird.Url.mailtoReemplace mailto con el protocolo y Thunderbird.Url.mailto con el ProgId real de la aplicación de destino.
- La herramienta escribe el ProgId correcto y calcula el Hash correspondiente automáticamente.
- Para verificar: consulte el registro:
reg query "HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto\UserChoice". El ProgId debe coincidir con el valor que estableció. - Para implementar por lotes: cree un archivo de texto con una asignación por línea y luego ejecute SetUserFTA con el modificador
-lpara cargarlo.
Este es el enfoque correcto para la implementación en flotas. Las ediciones manuales directas del registro sin SetUserFTA serán ignoradas por Windows porque el hash no coincidirá.
Cómo verificar que la solución funcionó
- Escriba la URL del protocolo en el cuadro de diálogo Ejecutar (
Win + R): por ejemplo,mailto:test@example.com. Debería abrirse la aplicación elegida. - Haga clic en un vínculo con formato de protocolo en su navegador. Windows puede solicitar “¿Quieres usar siempre esta aplicación para abrir…?” la primera vez; confirme.
- Compruebe el registro:
reg query "HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\<protocol>\UserChoice" /v ProgId. Debe mostrar el ProgId registrado de la aplicación.
Si nada de esto funciona
Si Windows sigue revirtiendo los valores predeterminados de los protocolos a sus aplicaciones integradas (Edge para http/https, el nuevo Outlook para mailto), es posible que una directiva de grupo los esté imponiendo. Ejecute gpresult /h C:\gpresult.html y busque Configuración de usuario → Plantillas administrativas → Componentes de Windows → Explorador de archivos → Establecer archivo de configuración de asociaciones predeterminadas. Si aparece una directiva, TI gestiona las asociaciones mediante un archivo XML en una ruta especificada; no puede anularlo sin la intervención del administrador. En equipos no administrados donde los valores predeterminados aún se revierten, el mecanismo de “reparación” de Windows 11 a veces restaura los valores predeterminados de Microsoft durante las actualizaciones acumulativas; vuelva a aplicar las asociaciones de protocolo después de las actualizaciones importantes. Para los protocolos en los que ninguna aplicación se ha registrado (un esquema de URI personalizado que intenta controlar usted mismo), primero debe registrar el controlador en HKEY_CLASSES_ROOT con el nombre del protocolo como clave y, luego, usar el Método 1 o 3 para asociarlo con su usuario.
En resumen: Configuración → Elegir valores predeterminados por tipo de vínculo gestiona la mayoría de los protocolos. Para los que la interfaz oculta o para la implementación empresarial, SetUserFTA establece de forma fiable el ProgId y el hash juntos para que Windows realmente respete el cambio.