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

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

20.08.2013, 14:44. Просмотров 7407. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2013, 14:44
Ответы с готовыми решениями:

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

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

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

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

Страная ошибка "Failed to set date 'бла-бла-бла'
Привет пишу программу(ну вы знаете). Возникла проблемка:...

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

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

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

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

Добавлено через 18 минут
Спасибо большое, я разобрался!
0
31.08.2013, 13:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2013, 13:53

Переименовать ключ в реестре
Всем здрасте кулцкодеры!!У меня 1 вопрос: как в делфи програамно переименовать...

Проверить, есть ли в реестре заданный ключ
Кокой функцией можно проверить, есть ли в реестре ключ?

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


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

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

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