Puede implementar un cambio de asociación de archivo "al vuelo" asociando un pequeño ejecutable con esa extensión de archivo que al inicio comprobará si su aplicación principal se está ejecutando y le pasará el nombre de archivo o si no la está ejecutando ' ll invocar la aplicación asociada "regular".
La principal ventaja de este enfoque es que debe revisar el registro una sola vez.
Los principales inconvenientes de este enfoque son:
- se necesita un proceso de ayuda
- la aplicación que "posee" estas extensiones de archivo pueden detectar el cambio y se quejan de que el usuario, lo que provocó la "reparación" por lo tanto sacándote de la imagen.
Alternativamente, podría cambiar la asociación del archivo al inicio de su programa principal. Esto funcionará incluso para usuarios que no sean administradores. mientras que las asociaciones de archivos se almacenan en HKEY_CLASSES_ROOT
, hay un pequeño truco: HKCR es en realidad un mapa de HKEY_LOCAL_MACHINE\SOFTWARE\Classes
y HKEY_CURRENT_USER\SOFTWARE\Classes
. Por lo tanto, puede registrar temporalmente la extensión de archivo para el usuario actual en HKCU y "sombrear" la asociación original de HKLM.
Por supuesto, recomendaría este enfoque, ya que solo hace falta un bloqueo en su aplicación para hacer que la asociación sea permanente y dado que muy pocas aplicaciones saben cómo manejar asociaciones de archivos en HKCU, es probable que sea una situación irrecuperable para la aplicación original.
El otro problema es que si su aplicación falla, dejará la extensión asociada incorrectamente. Es realmente fastidioso tener un programa que cambie la configuración de la computadora de esa manera y los deje "dañados" al bloquearse –