Um mein Programm im Kontextmenü aller Dateien anzuzeigen, benutze ich folgenden Code:
Delphi-Quellcode:
procedure TForm1.addClick(Sender: TObject);
var
Reg:TRegistry;
begin
reg:=tregistry.create();
Reg.RootKey:=HKEY_CLASSES_ROOT;
Reg.OpenKey('*\shell\'+Name,true);
Reg.WriteString('',Title);//optional
Reg.CloseKey;
Reg.OpenKey('*\shell\'+Name+'\command',true);
Reg.WriteString('',Adress); // adress="c:\test\meinprogramm.exe %1"
Reg.CloseKey;
reg.free;
end;
Unter Windows XP läuft das auch alles wunderbar, bei einem Test unter Windows 7, 64 Bit ging gar nichts mehr. Mein erster Gedanke waren die Adminrechte, aber auch mit Adminrechten geht es nicht. Ich nehme an, es liegt an dem 64 Bit System, da sich hier nach einigen Recherchen ja einiges geändert haben soll. Ich habe mir diverse Seiten angesehen, wie zum Beispiel:
http://msdn.microsoft.com/en-us/library/aa384253.aspx
aber trotzdem bin ich nicht auf eine Lösung gekommen. Ich denke das Problem interessiert viele, die Ihre alten Anwendung auch unter Windows 7 64 Bit läuffähig halten möchten.. Vielleicht kennt jemand eine Lösung, was geändert werden muss?