Hola,
Creo que te refieres a asociar una extensión de archivo con tu programa. Las siguientes funciones las uso yo en una aplicación para ello. Las escribí hace tiempo y no he hecho ahora sino copiarlas aquí. Atención, porque puede que tengan algún que otro problema: debes hacer pruebas y asegurarte de que todo va bien para repasar lo que fuera menester.
Código Delphi
[-]
procedure AsociarExtension(extension: string);
var
reg: TRegistry;
temp, tipo: string;
begin
tipo := rsProyecto + Copy(UpperCase(extension),
2, Length(extension));
reg := TRegistry.Create;
try
with reg do begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(extension, true);
temp := ReadString(EmptyStr);
WriteString(EmptyStr, tipo);
CloseKey;
OpenKey(tipo + '\shell\open\command', true);
WriteString(EmptyStr, ParamStr(0) +' "%1"');
CloseKey;
OpenKey(tipo + '\DefaultIcon', true);
WriteString(EmptyStr, ParamStr(0) +',0');
CloseKey;
if (temp <> EmptyStr) and (temp <> tipo) then
begin
RootKey := rsRegRoot;
OpenKey(rsRegExtensiones +rsBarraIzq+ extension, true);
WriteString(EmptyStr, temp);
CloseKey;
end;
end;
finally
reg.Free;
end;
end;
procedure DesasociarExtension(extension: string);
var
reg: TRegistry;
temp, tipo: string;
begin
temp := EmptyStr;
tipo := rsProyecto + Copy(UpperCase(extension),
2, Length(extension));
reg := TRegistry.Create;
try
with reg do begin
RootKey := rsRegRoot;
OpenKey(rsRegExtensiones +rsBarraIzq+ extension, false);
temp := ReadString(EmptyStr);
CloseKey;
DeleteKey(rsRegExtensiones +rsBarraIzq+ extension);
RootKey := HKEY_CLASSES_ROOT;
OpenKey(extension, false);
WriteString(EmptyStr, temp);
CloseKey;
DeleteKey(tipo);
end;
finally
reg.Free;
end;
end;