Por lo tanto, no puedo asociar mi programa con un tipo de archivo específico sin forzar al usuario pobre a ingresar su contraseña de administrador (puede estar bien para usuarios domésticos, pero es un problema gigantesco para los usuarios en un entorno corporativo). En este caso, la única solución es hacer la asociación solo para el usuario actual.¿Cómo asociar un programa Delphi con un tipo de archivo, pero solo para el usuario actual?
Lo he intentado pero algo no funciona.
Si entiendo correctamente tengo que escribir una clave como (digamos) '.mp3' en ctCurUserFileExt y escribir algo así como 'mi_archivo'. Luego, en ctCurUserClases añado una clave de esta manera:
WriteReg_String(RootKey, ctCurUserClases+ 'my_file\shell\open\command', '', Application.ExeName+ ' "%L"', TRUE)
Sin embargo, cuando hago doble clic en el archivo, Windows me pregunta con qué aplicación debería abrirla.
Éstos son la constante:
CONST
RootKey= 'HKEY_CURRENT_USER';
ctCurUserFileExt= '\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\';
ctCurUserClases = '\Software\Classes\';
[víctima Posible] (http://stackoverflow.com/questions/4585078/how-to-change-file-association-programmatically-without-require-elevation) – NGLN
Hola, Ngln. NO es un tonto. Se trata de cómo asociar para todos los usuarios (requiere elevación). Necesito sin elevación (por lo tanto, solo para el usuario actual). – Ampere
¿por qué no usar TRegistry, por cierto? –