Kojarzenie rozszerzeń z plikiem

0

Mam problem - chciałbym skojarzyć rozszerzenie z moim programem (tzn. chciałbym żeby to prgoram mógł je ze soba skojarzyć :)). Zacząłem już pracować nad tym, aby program sam wprowadzał odpowiednie do rejestru, ale:
-nie wiem czy to zadziała, i czy sobie nie rozwale rejestru (nie mówiąc już o potencjalnych użytkownikach programu :))
-nie wiem, czy to, co napisze działałoby pod np. WinXP (mam 98)
Dlatego mam pytanie: czy w Delphi jest jakiś sposób, aby zrobić to automatycznie?

0

musisz pogrzebac w rejestrze.
boisz sie czy nie rozwalisz sobie rejestru?.....
a co za problem zrobic sobie kopie zapasowa? (bezpiecznestwa)
poza tym kontrolujac jedno roszerzeni nie rozwalisz calego rejstru, najwyzej skojarzeni z tym jednym rozszerzeniem.
co do roznic. nie mam 98 wiec nie wiem jak to tam wyglada, lecz sodze ze jest to podobne.
W localmachine>"roszerzenie"+file>shellexecute czy ajkos tak i wpisujesz odpowidnia wartosc (czyli sciezke do twego programu)

0
procedure TGlowna.PowiazanieClick(Sender: TObject);
begin
  if Powiazanie.Checked then
  begin
    Reg := TRegistry.Create;  // otworz rejestr
    try
      try
        Reg.RootKey := HKEY_CLASSES_ROOT; // odpowiedni klucz otworz :)
        Reg.OpenKey( // Utworz klucz
        '.kon', True);
        Reg.WriteString('', 'KonFile'); // dodaj typ klucza
        Reg.CloseKey;  // zamknij klucz
        Reg.OpenKey(  // stworz klucz oznaczajacy ikone
        'konfile\DefaultIcon', True);
        Reg.WriteString('', Application.ExeName + ',0');
        Reg.CloseKey;
        Reg.OpenKey(  // stworz kolejny...
        'konfile\shell\open\command', True);  // akcja po nacisnieciu
        Reg.WriteString('','"'+Application.ExeName+'" "%1"');// wpisz sciezke programu
        Reg.CloseKey;
        Reg.OpenKey(
        'konfile\shell\Edytuj', True); // stworz nowe pozycje - Edyuj
        Reg.WriteString('', 'Otwórz w programie...'); // tekst pozycji
        Reg.CloseKey;
        Reg.OpenKey(  // stworz akcje po nacisnieciu
        'konfile\shell\Edytuj\command', True);
        Reg.WriteString('', '"' + Application.ExeName + '" "%1"'); // dopisz sciezke programu
      except
        raise Exception.Create('Błąd! Wystąpił błąd wzwiązany z rejestrem!');
      end;
    finally
      Reg.Free;
    end;
  end else
  begin
    Reg := TRegistry.Create;
    try
      Reg.RootKey := HKEY_CLASSES_ROOT;
      Reg.DeleteKey('.kon');
      Reg.DeleteKey('konfile');
    finally
      Reg.Free;
    end;
  end;
end;

Ja używam takiego kodu. Zapożyczony z jakiegoś programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1