Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: Dateitypen mit Programm verknüpfen (ohne Admin-Rechte)

  Alt 16. Okt 2004, 16:45
Vllt. ein paar Worte von mir, die bitte nicht falsch zu verstehen sind --

Ich habe die "TFileTypeRegistration"-Klasse u.a. geschrieben, weil ich mit dem Prinzip von Funktionen wie dieser
Zitat von notErnie:
procedure registerfiletype(Handle: HWnd; ft, key, desc, icon, prg: string);
nie ganz zufrieden war. Manchmal möchte/muss man für den gleichen Dateityp verschiedene Aktionen registrieren. Soll heißen: Man muss die Funktion mehrmals aufrufen. Ein Tippfehler bei der Angabe der Endung o.ä., und dann geht die Fehlersuche los.
Mal abgesehen davon sind Variablennamen wie "ft" nicht wirklich aussagekräftig. Dein Programm vergrößert sich nicht, wenn du stattdessen einen Klarnamen wie "Extension" o.ä. benutzt.

Bei meiner Klasse gibt´s dieses Problem nicht. Beginnt man mit dem Registrieren eines Dateityps, dann gelten alle darauf folgenden Aktionen auch für diesen Typ:
Delphi-Quellcode:
ftr := TFileTypeRegistration.Create;
if(ftr <> nil) then
try
  if(ftr.RegisterType('.foo','FooFile','FOO Description',
    'c:\folder\icon.ico')) then
  begin
    ftr.AddHandler('open','"c:\folder\foo.exe" "%1"');
    ftr.AddHandler('print','"c:\folder\foo.exe" /p "%1"');
    ftr.AddHandler('edit','notepad.exe "%1"');

    { ... }
  end;
finally
  FreeAndNil(ftr);
end;
usw.

Warum ich das erwähne? Ganz einfach: Offenbar kennst du meine Klasse, wie ich an "IsAdmin" (von Nico, btw) erkenne:
Zitat:
//----von Mathias Simmacks "IsAdmin.inc" (TFileTypeRegistration.zip) geklaut:
Du hättest also bspw. die Klasse umschreiben bzw. erweitern können, so dass eben nicht mehr in HKEY_CLASSES_ROOT, sondern in HKCU gespeichert wird. Damit wäre der Komfort erhalten geblieben, denn am Prinzip der Typregistrierung ändert sich nämlich nichts.


btw: Jemand () sollte mal den einzigen bisher gefundenen Bug in der Unit mal fixen und diese dann neu anhängen.
  Mit Zitat antworten Zitat