Thema: Delphi Frage zu TRegistry

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

Re: Frage zu TRegistry

  Alt 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
  Mit Zitat antworten Zitat