Показать сообщение отдельно
  #6  
Старый 26.07.2013, 10:36
Zorkov Igor Zorkov Igor вне форума
Новичок
 
Регистрация: 28.07.2009
Сообщения: 85
Репутация: 50
По умолчанию

Шикарно вообще

Радует инсталер

Все получилось с контекст меню, регистрирую 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, но он шибко глючный сволочь
Ответить с цитированием