Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/55: Рейтинг темы: голосов - 55, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 30.01.2013
Сообщений: 150
1

Ошибка при работе в реестре: failed to set data for 'ключ реестра'

20.08.2013, 14:44. Просмотров 11522. Ответов 5
Метки нет (Все метки)

Доброе время суток.
Помогите решить проблему!
Вот код приложения:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
uses Registry;
------------
procedure TForm1.Button1Click(Sender: TObject);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background',true);
reg.WriteInteger('OEMBackground',1);
reg.CloseKey;
reg.Free;
end;
Компелируется без проблем, но когда нажимаю эту кнопку вылезает такая ошибка:
Ошибка при работе в реестре: failed to set data for 'ключ реестра'

В заголовке ошибки название моего проекта, поэтому на него можно не смотреть!
У меня операционка Windows 7 домашняя расширенная, 64bit.
Delphi: Rad Studio XE4 32bit.
Помогите, плиз! Заранее спасибо.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2013, 14:44
Ответы с готовыми решениями:

Реестр, ошибка при запуске программы: Failed to set data for "MicrosoftSystem"
пытаюсь добавить файл в реестр. при компиляции нет никаких ошибок. все запускается. файл в реестре...

При добавлении процедуры автозагрузки выходит ошибка "Failed to set data for 'Black'"
Приветствую уважаемые пользователи! При добавлении процедуры автозагрузки var reg: TRegistry;...

Запись в реестр и ошибка "Failed to set data"
Что то у меня не выходит, выбивает программу при записи в реестр, что не так? выбивает на...

Failed to set data for 'InfoTip'
Всем добрый вечер! Начал работать с реестром, попытался написать код, но он, к сожалению, не...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29727 / 19550 / 7665
Регистрация: 22.10.2011
Сообщений: 34,104
Записей в блоге: 6
20.08.2013, 16:58 2
На 64-битной ОС надо бы
Delphi
1
reg:=TRegistry.Create(KEY_WRITE or KEY_WOW64_64KEY);
, иначе из-за виртуализации реестра у тебя просто не будет найден нужный ключ... Если бы ты проверял результат, который вернула функция OpenKey, то было бы проще догадаться самому, что ветка просто не находится.
1
834 / 729 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
23.08.2013, 10:46 3
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Компелируется без проблем, но когда нажимаю эту кнопку вылезает такая ошибка:
У тебя ошибка подобная моей, которая когда-то тоже имела место быть в моих приложениях.
Если ты все еще не понял то ты сейчас зашел не с учетки которая с правами админа, а с учетки с правами гостя и пытаешся поставить прогу в автозапуск реестра на ту ветку которая тебе запрещена! reg.RootKey:=HKEY_LOCAL_MACHINE; на которую права АДМИНА ТРЕБУЮТСЯ!
От Администратора конечно прога работать будет, но чтобы работала она с любой учетки замени строку reg.RootKey:=HKEY_LOCAL_MACHINE;
на
reg.RootKey := HKEY_CURRENT_USER;
1
Изображения
 
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29727 / 19550 / 7665
Регистрация: 22.10.2011
Сообщений: 34,104
Записей в блоге: 6
23.08.2013, 12:25 4
NIKOLAYY, в чем ошибка - я написал выше. Если этого не сделать - то ни из под какого администратора на 64-битной системе программа работать не будет. Читай внимательнее, что написано в теме ДО ТЕБЯ...
1
834 / 729 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
23.08.2013, 13:03 5
Спс я читал, но у меня 32 битная система и я очень долго это окно тестил на ошибки, запускал прогу около 30 раз на двух компах в разных ветках реестра и под разными пользователями и с разными правами именно для того чтобы избавится от этого окна!
Ну у меня вроде его нету. Пока нету... (окна с ошибкой я имею ввиду).

Добавлено через 6 минут
-----------------------------------
Тут много что зависит от администраторских прав пользователей.
Я будучи гостем я ни как несмог программу разрешит ь брандмауером нетока программно но и просто в самом компьтере!
А это значит все труды летят! Программа собрана а тока от этой мелочи она неработает полностью!

---------------------------------------------------

Ну тут и вопрос заодно напросился: как "гостю" разрешить брандмауер?
Неужто вобще ни как???
1
2 / 2 / 2
Регистрация: 30.01.2013
Сообщений: 150
31.08.2013, 13:53  [ТС] 6
Понимаете, у меня ветка реестра которую нужно редактировать уже должна быть, в системе!
Поэтому если я создам параметр в другом ключе результат будет не тот(который должен быть).
Поэтому я не могу записать параметр в HKEY_CURRENT_USER.

Добавлено через 18 минут
Спасибо большое, я разобрался!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2013, 13:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка при установке Oracle 18c: Failed to set ACL's for specified User
Здравствуйте. подскажите пожалуйста кто уже сталкивался с такой проблемой при установки Oracle 18с...

При работе с файлом появляется ошибка debug assertion failed
При работе с файлом вылезает ошибка debug assertion failed.Как устранить ошибку? Помогите,...

Баг при работе с xml Document: ошибка RuntimeException "Event notification set size exceeded
Была поставлена простенькая задача. Чтобы в одном большом проекте была возможность редактировать...

Добавляю ADO.NET Entity Data Model, при работе с библиотекой классов происходит ошибка
Создаю проект (Windows Forms) добавляю в него локальную базу данных (*.sdf) с одной таблицей, затем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.