Moin,
in diesem Thread:
http://www.delphipraxis.net/internal...=824052#824052
wurde ich darauf hingewiesen, dass nicht alle Registry-Einträge die ich geöffnet habe wieder geschlossen werden. Nun habe ich die entsprechende Funktion überarbeitet und sie sieht nun wie folgt aus:
Delphi-Quellcode:
function InstallExt(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: string; IconIndex: Integer = 0): boolean;
var
reg: TRegistry;
begin
result := false;
if Extension <> '' then
begin
if Extension[1] <> '.' then
Extension := '.' + Extension;
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
if reg.OpenKey(Extension, true) then
begin
reg.WriteString('', ExtDescription);
reg.CloseKey;
if reg.OpenKey('\' + ExtDescription, true) then
begin
reg.WriteString('', FileDescription);
reg.CloseKey;
if reg.OpenKey('DefaultIcon', true) then
begin
reg.WriteString('', Format('%s,%d', [OpenWith, IconIndex]));
reg.CloseKey;
if reg.OpenKey('\' + ExtDescription + '\Shell\Open\Command', true) then
begin
reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString]));
result := true;
reg.CloseKey;
end;
end;
end;
end;
finally
reg.Free;
end;
end;
end;
Die Verknüpfung und die Beschreibung werden auch brav gesetzt, nur mit dem Iconindex scheint es zu hapern, statt das Icon aus meiner Anwendung erstellt Windows nun selbst eins (sieht aus wie ein weises Blatt auf dem das Haupticon meiner Anwenung zu sehen ist).
Was mach ich oben falsch ?
Gruß
Christian