if myreg.OpenKey('*\shell\MyApp\command',True)
then begin
myreg.WriteString('','"'+TntApplication.ExeName+'" "%1"');
myreg.CloseKey;
end;
Возникает ошибка. Если закомментировать myreg.WriteString, то ошибки нет. Ошибка кроется именно в WriteString (пока не проверял WriteInteger, WriteBool и другие). Ошибка - "Failed to set data for ''."
Изучаю функцию WriteString. Её код (лишнее удалено):
GetLastError еще никто не отменял между прочим, да и eregistryexception должен чего нить выдавать если есть причина.
upd:
sysutils.SysErrorMessage(GetLastError); // вернет string
Последний раз редактировалось neprovad; 22.12.2008 в 20:08..
Причина: на всякий случай
Ошибка - "Failed to set data for ''." То есть не может записать в значение ''. Подставлял 'test', выдает "Failed to set data for 'test'."
В Delphi IDE после ошибки при нажатии в сообщении кнопки 'Break' открывается юнит TntRegistry и показывает функцию TTntRegistry.PutData. Видимо RegSetValueExW некорректно работает.
Также у меня возникала ошибка с функцией SHFileOperationW из ShellAPI. SHFileOperation и SHFileOperationA работают, а она нет.