Показать сообщение отдельно
  #1  
Старый 10.02.2017, 20:46
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию Библиотека интеграции в меню проводника 64-бит

Windows 8.1 64-bit
Delphi XE2

Есть библиотека интеграции в меню проводника, добавляет пункт меню для определенных типов файлов и для папок. 32-битная версия работает нормально, а вот 64-битная версия добавляет пункт только для папок, а для файлов - нет. Причем функция записи в реестр выдает положительный результат, что значит, что запись проходит, но открыв regedit, записи я не вижу(ветка shellex не создается). В чем проблема - уже всю голову сломал.

Вот функция записи в реестр:
Код:
function CreateRegKey(const Key, ValueName, Value: string;
  RootKey: UINT_PTR = HKEY_CLASSES_ROOT): boolean;
var
  Handle: HKey;
  Status, Disposition: Integer;
begin
  Status:= RegCreateKeyEx(RootKey, PChar(Key), 0, '',
    REG_OPTION_NON_VOLATILE, KEY_READ or KEY_WRITE, nil, Handle,
    @Disposition);
  if Status = ERROR_SUCCESS then
  begin
    Status:= RegSetValueEx(Handle, PChar(ValueName), 0, REG_SZ,
      PChar(Value), Length(Value)*2 + 2);
    RegCloseKey(Handle);
  end;
  Result:= (Status = ERROR_SUCCESS);
end;
Может, для 64-битной ОС какой-то особый ключ нужен? Хотя для папок же запись создается...
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием