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-битной ОС какой-то особый ключ нужен? Хотя для папок же запись создается...