Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
Delphi 12 Athens
|
Re: Frage zu TRegistry
28. Dez 2007, 13:14
Ungetestet:
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);
if reg.OpenKey('\' + ExtDescription, true) then
begin
reg.WriteString('', FileDescription);
if reg.OpenKey('DefaultIcon', true) then
begin
reg.WriteString('', Format('%s,%d', [OpenWith, IconIndex]));
if reg.OpenKey('\' + ExtDescription + '\Shell\Open\Command', true) then
begin
reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString]));
result := true;
reg.CloseKey;
end;
reg.CloseKey;
end;
reg.CloseKey;
end;
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
end;
Wobei sich meine Hilfe dazu ausschweigt, ob jedes OpenKey ein neues Handle anfordert und behält. Falls nicht, würde auch das letzte CloseKey genügen.
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|