Du kannst in der Registry unter HKEY_CLASSES_ROOT\*\shell\PROGRAMMNAME einen Standardwert (Zeichenfolge mit leerem Namen) mit dem Text erzeugen, der dann im Kontextmenü angezeigt werden soll. Unter HKEY_CLASSES_ROOT\*\shell\PROGRAMMNAME\command steht dann im Standardwert der Pfad zu deinem Programm und die Parameter, die übergeben werden (%1 für den Pfad der Datei, die gewählt wurde).
Delphi-Quellcode:
Reg := TRegistry.create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if Reg.KeyExists('\*\shell\TEST') then
begin
TheMessage := 'Not all Registry entries were removed successfully.';
if Reg.DeleteKey('\*\shell\TEST') then
TheMessage := 'All Registry entries removed successfully.';
end
else
begin
TheMessage := 'Not all Registry entries were created successfully.';
if Reg.OpenKey('\*\shell\TEST', true) then
Reg.WriteString('', 'Shreddern...');
if Reg.OpenKey('\*\shell\TEST\command', true) then
begin
Reg.WriteString('','"' + ParamStr(0) + '" "%1"');
TheMessage := 'All Registry entries created successfully.';
end;
end;
finally
Reg.CloseKey;
Reg.Free;
end;
ShowMessage(TheMessage);
Für mehrere Sicherheitsstufen musst du wahrscheinlich mehrere Einträge anlegen. Statt * (alle Dateien) kannst du auch einen bestimmten Dateityp oder "Directory" für Ordner und "Drive" für Laufwerke benutzen.