He estado tratando de encontrar una forma de cambiar la asociación de archivos predeterminada para una extensión de archivo específica en Windows 7. Tengo una aplicación que se utiliza para ver los archivos .tif que deseo solicitar al usuario si no es el visor predeterminado para ese tipo de archivo . Si eligen que sea el predeterminado, quiero sobrescribir el visor predeterminado actual . Esto funciona bien si no hay otros visores instalados en el sistema . Cuando hay otro espectador que ha sido seleccionada por el usuario, que No puedo cambiar la clave de registro que controla que aquí:¿Hay alguna forma de establecer programáticamente la clave de registro "UserChoice" para hacerse cargo de una asociación de tipo de archivo?
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice
He fregado la tela tratando de encontrar a alguien que ha hecho esto, pero nadie parece tener alguna respuesta Cuando trato de actualizar el valor "Progid" dentro de esta clave , aparece el mensaje "No se puede escribir en la clave de registro" o "Se solicitó el acceso al registro solicitado no es ". El código es bastante simple:
var path = @"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice";
var key = Registry.CurrentUser.OpenSubKey(path, true);
key.SetValue("Progid", "myprogid...");
¿Hay algún tipo de protección especial en esta llave que le impide ser programación editado?
¿Ha intentado actualizarlo, por ejemplo en una aplicación de consola, que ejecuta con privilegios de administrador? – ChristiaanV
Es una aplicación de escritorio, ejecutándose como yo, pero sin privilegios de administrador. Ese fue mi siguiente paso. – Jason
Correr como administrador no ayudó. – Jason