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.