Шикарно вообще
Радует инсталер
Все получилось с контекст меню, регистрирую DLL как то так
Код:
const
CLSID_ContextMenu = '{BBAB3AF5-43D9-4C12-BC92-32CF83868822}';
function RegExt(FileName: String): Boolean;
var
Reg: TRegistry;
begin
try
Result := False;
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey('\CLSID\' + CLSID_ContextMenu, True);
WriteString('', 'File Unlocker');
OpenKey('\CLSID\' + CLSID_ContextMenu + '\InProcServer32', True);
WriteString('', FileName);
WriteString('ThreadingModel', 'Apartment');
Result := OpenKey('\*\shellex\ContextMenuHandlers\' + CLSID_ContextMenu, True);
if Result then
begin
WriteString('', CLSID_ContextMenu);
Result := OpenKey('\folder\shellex\ContextMenuHandlers\' + CLSID_ContextMenu, True);
WriteString('', CLSID_ContextMenu);
end;
Result := OpenKey('\lnkfile\shellex\ContextMenuHandlers\' + CLSID_ContextMenu, True);
WriteString('', CLSID_ContextMenu);
end;
finally
Reg.Free;
end;
except
end;
end;
function UnRegExt(FileName: String): Boolean;
var
Reg: TRegistry;
begin
try
Result := False;
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CLASSES_ROOT;
Result := DeleteKey('\*\shellex\ContextMenuHandlers\' + CLSID_ContextMenu);
if Result then
begin
Result := DeleteKey('\folder\shellex\ContextMenuHandlers\' + CLSID_ContextMenu);
end;
Result := DeleteKey('\lnkfile\shellex\ContextMenuHandlers\' + CLSID_ContextMenu);
end;
finally
Reg.Free;
end;
except
end;
end;
Буду теперь доводить до ума
File Unlocker, здесь пользовал ShellPlus, но он шибко глючный сволочь