В целом, сообщение "A call to an OS function failed" вызывается из SysUtils, когда Win32Check или RaiseLastOSError не находит соответствующее сообщение об ошибке в модуле.
Пояснение
Цитата Painkiller:
При нажатии кнопки Button2 выскакивает ошибка »
|
И как это понимать? Я ведь написал Вам два варианта:
1. Вызывать исключение
RaiseLastOSError; // выводит сообщение об исключительной ситуации, но не для RegKeyExists(....), а для RegDeleteKeyTree(...)
Exit(); // выйти из процедуры
2. Выводить сообщение с кодом ошибки
memo1.Lines.Add('[ Ошибка [ ' + SysErrorMessage(GetLastError) + ' ] Ключ не найден');
// это сообщение будет такого вида
Ошибка [Операция успешно завершена]Ключ не найден !!!! Зачем такой вид?? Не проще
memo1.Lines.Add('[ Сообщение - ( ' + SysErrorMessage(GetLastError)+')')
А Вы все в одну кучу!
3. Для чего Вы RegSetWOW64AccessMode(raNative) поместили в событие кнопки? Оно должно вызываться один раз, при создании или инициализации формы.