Форум программистов, компьютерный форум, киберфорум
Администрирование Windows
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/30: Рейтинг темы: голосов - 30, средняя оценка - 4.57
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421

Почему в ряде случаев требуется перезагрузка, чтобы изменения в реестре вступили в силу?

03.01.2014, 12:31. Показов 6494. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос, можно сказать, теоретический.
Так понимаю, что реестр, являясь некой виртуальной сущностью, находится в оперативе. Данные, в самом обычном случае, считываются (хотелось бы знать чем) из файлов кустов и помещаются в память.
При обращении к реестру, ОС считывает данные из оперативы.
При правке реестра, я так понимаю, данные в памяти также изменяются. (Ведь содержимое Регедита есть ничто иное, как "снимок" памяти, содержащей реестр).
Непонятно почему во многих случаях для вступления в силу изменений реестра необходима перезагрузка. Ведь данные в памяти изменены. ОС будет получать измененные данные. Или же до перезагрузки никаких изменений не произошло?
Можно ли в таком случае "эмулировать" перезагрузку, чтобы изменения действительно произошли, не прибегая к реальной перезагрузке?

Добавлено через 17 минут
Тут нарыл такую инфу:

Если вы хотите обновить реестр, но не хотите перезагружать компьютер, тогда сделайте следующее. Нажмите сочетание трёх магических клавиш CTRL+ALT+DELETE, выберите Explorer и нажмите “Завершить задачу”, вам предложат выключить компьютер, не соглашайтесь. Через некоторое время вы увидите окно, где вам надо будет нажать кнопку Завершить задачу. Ёще, через некоторое время пропадёт панель задач, но вскоре вновь появиться.
Неужели все эти танцы с перезагрузками сводятся к одному - к перезагрузке эксплорера?
Всегда ли это работает?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.01.2014, 12:31
Ответы с готовыми решениями:

Сериализация/десериализация Xml, как сделать чтобы изменения вступили в силу
Возникла проблема: сохраняю датасет в xml файл-успешно сохранен, изменяю бд, считываю этот файл, изменения успешно нейтрализованы, получаю...

Не обновляется запись в ряде случаев
Добрый день! Вот такая ситуевина случилась в Oracle 9.2.0.1.0. Есть процедура, которая принимает параметры id записи, сумму(number). ...

Почему изменения не вступают в силу
Скачал один исходник, изменяю некоторые моменты, запускаю, а программа запускается так же без изменений, пробовал менять свойства, ничего...

18
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
03.01.2014, 15:41
Цитата Сообщение от Bazaroff Посмотреть сообщение
Или же до перезагрузки никаких изменений не произошло?
Можно ли в таком случае "эмулировать" перезагрузку, чтобы изменения действительно произошли, не прибегая к реальной перезагрузке?
Чтобы программы "перечитали" данные из реестра.

Цитата Сообщение от Bazaroff Посмотреть сообщение
Неужели все эти танцы с перезагрузками сводятся к одному - к перезагрузке эксплорера?
Всегда ли это работает?
Не всегда. С реестром работает не только эксплорер.

Цитата Сообщение от Bazaroff Посмотреть сообщение
При обращении к реестру, ОС считывает данные из оперативы.
Насколько мне известно, нет. Данные считываются из файлов. (Но в этом могу ошибаться)

Тут суть даже не в том, где хранятся данные. Суть в логике программ, которые единократно считали данные из реестра, и затем работают с полученными настройками. И перечитывание данных происходит при перезапуске этих программ.
1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
03.01.2014, 17:03
К написанному выше добавлю, что в результате перезагрузки (или выключения)
данные из памяти сбрасываются на диск, в файлы реестра. И это служит
некоторой гарантией того, что они потеряются или рассинхронизируются в
результате аварийного отключения питания или краха системы.
2
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
03.01.2014, 18:22
Цитата Сообщение от Bazaroff Посмотреть сообщение
Так понимаю, что реестр, являясь некой виртуальной сущностью, находится в оперативе.
И в оперативе и на диске и вообще, это защищённая от сбоев база данных и "синхронизируется" она не во время перезагрузки, а постоянно. И редактор работает не со "снимком памяти", такого понятия не вообще.

Цитата Сообщение от Bazaroff Посмотреть сообщение
Неужели все эти танцы с перезагрузками сводятся к одному - к перезагрузке эксплорера?
Естественно, нет. Иногда это может помочь. Чаще - нет.
Винда слишком сложная система. Я думаю, программисты МС руководствуются принципом, что при изменении некоторых параметров проще перезагрузить систему, чем разбираться, где и как применяются изменения, для надёжности

Добавлено через 33 минуты
Можно попробовать объяснить так:
Вот, допустим, меняется некий важный параметр в системе. Этот параметр уже прочитали при загрузке себе в "оперативку" запущенные прграммы, службы, драйвера... Теперь им как-то надо сообщить, что этот параметр поменялся. Сообщили (механизмы такого опевещения в системе есть). И тут начинается самое интересное. Все эти программы, драйвера должны начать использовать этот параметр. Одновременно. Самым трагическим в этом является то, что _любая_ "многозадачная" система типа Винды по своей сути _однозадачная_ - все задачи выполняются последовательно (в лучшем случае могут быть распределены между несколькими ядрами, можно подискутировать по этому поводу, но сути это не меняет). Одновременное принятие параметра просто невозможно. Что произойдёт при неодновременном применении параметра ни один писавший это программист не предскажет. Поэтому, только перезагрузка.
1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
03.01.2014, 18:52
Цитата Сообщение от Smitis Посмотреть сообщение
И в оперативе и на диске и вообще, это защищённая от сбоев база данных и "синхронизируется" она не во время перезагрузки, а постоянно. И редактор работает не со "снимком памяти", такого понятия не вообще.
При записи в реестр данные сбрасываются на диск не сразу, а спустя некоторое время.
Это называется lazy flush или lazy write. Если между записью нового значения и сбросом его
на диск компьютер будет неожиданно отключен от питания, данные будут утеряны.
То же самое касается и кэшей файловых систем. Если А успели сбросить на диск, а Б - нет,
причем А и Б логически связаны между собой, то получается рассинхронизация.
И могут быть проблемы, особенно если А и Б являются частью какого-нибудь критически
важного механизма, например регистрации драйвера. Вплоть до невозможности загрузки ОС.

Перед выключением/перезагрузкой ОС сбрасывает на диск все отложенные записи и кэши,
приводя систему в согласованное состояние.
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,421
03.01.2014, 19:36  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
в результате перезагрузки (или выключения)
данные из памяти сбрасываются на диск, в файлы реестра.
Я понимаю, что для сохранения изменений мало обновления изначальных данных. Меня интересовало применение изменений в рамках текущего сеанса.

Цитата Сообщение от Smitis Посмотреть сообщение
Этот параметр уже прочитали при загрузке себе в "оперативку" запущенные прграммы, службы, драйвера
То есть, реестр в этом случае явил себя как дополнительная безполезная нагрузка? Ведь, для этой операции сначала надо этот реестр состряпать, а потом драйвер считает данные из реестра.
Какое-то безрассудство получается! Не проще было бы обезпечить считывание данных драйвером непосредственно из файла, содержащего эти данные? Ведь примеров таковых механизмов в маст дае масса! ини-файлы, инф-файлы, да масса их! К чему в этом примере необходимость реестра?

ЗЫ К чему я это все? В процессе ковыряний возникает масса вопросов. Отдельно рассматривать их... это как мазайку собирать!) Нет такого желания! А тут как-то сам-собой родился обобщающий вопрос.
Конечно, его раскрытие не исключит эту самую мозайку, но, мне кажется, существенно сократит мытарства мои!

Большое спасибо, друзья, за отклик! Буду рад дополнительным пояснениям, и, да... С ПРАЗДНИКАМИ!!!)))
0
Модератор
Эксперт Windows
 Аватар для Persk
8748 / 3373 / 244
Регистрация: 25.10.2010
Сообщений: 13,603
04.01.2014, 13:51
Для глобальных изменений в системе необходима перезагрузка
Например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TPagesDlg::BitBtn19Click(TObject *Sender)
{//Разрешение свойств папки
TRegistry *reg=new TRegistry;
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",true);
reg->DeleteValue("NoFolderOptions");
reg->CloseKey();
delete reg;
Beep(1000,100);
if (MessageBox(0,"Выполнено, но требуется перезагрузка. Перезагрузить компьютер сейчас?",
"Внимание!",MB_YESNO)==IDYES);
else
{
Abort();
}
.........
А для разрешения работы определённой системной программы (СМД, регедит) перезагрузка не требуется
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TPagesDlg::BitBtn30Click(TObject *Sender)
{//разрешить CMD
TRegistry *reg=new TRegistry;
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("\Software\\Policies\\Microsoft\\Windows\\System",true);
reg->DeleteValue("DisableCMD");
reg->CloseKey();
delete reg;
Beep(1000,100);
Application->MessageBox("Командная строка разрешена", "Аптечка сис. админа ", MB_OK | MB_ICONINFORMATION);
}
Коды взяты при написании Аптечка
2
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
04.01.2014, 19:15
Цитата Сообщение от Bazaroff Посмотреть сообщение
Ведь примеров таковых механизмов в маст дае масса! ини-файлы, инф-файлы, да масса их! К чему в этом примере необходимость реестра?
А ты можешь обеспечить доступ к ини-файлу одновременно несколькими процессами (один процесс записывает параметр, другой в это время читает) и разрешить все возникающие конфликты? А обеспечить целостность структуры этого файла, если во время записи выключится питание? Начнёшь решать все проблемы, поймёшь, что текстовый формат не самый лучший и т.д. и т.п. и конце концов напишешь свою базу данных. Или вариант реестра.

Цитата Сообщение от Убежденный Посмотреть сообщение
При записи в реестр данные сбрасываются на диск не сразу, а спустя некоторое время.
Это называется lazy flush или lazy write.
Я пытался объяснить "на пальцах".
1
24 / 24 / 0
Регистрация: 03.12.2013
Сообщений: 115
05.01.2014, 22:57
Скажем так, перезагрузка нужна не реестру, а приложениям которые используют реестр как хранилище своих настроек, параметров и т.д. и иногда у этих приложений могут быть очень сложные зависимости, так что перезагрузка это своего рода гарантия того что перезапустили действительно ВСЁ
0
nsklital
08.03.2014, 18:49
люди спасайте. поменял кодировку на c_1251.nls как сделать чтобы вступило в силу без перезагрузки ОС XP????
Заблокирован
09.03.2014, 16:55
Абсолютно никак, это системный уровень на уровне бута. Там же и локаль для неюникода.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
11.03.2014, 01:17
Цитата Сообщение от Bazaroff Посмотреть сообщение
Не проще было бы обезпечить считывание данных драйвером непосредственно из файла, содержащего эти данные?
Почитай Реймонда Чена.
0
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
11.03.2014, 12:50
Вообще-то, у M$ и её поклонников, подобных по ссылке выше, достаточно предвзятое отношение ко многим вещам, особенно отличным от официального мнения M$. В данном случае это отношение к ini-файлам. По большому счёту, они занимаются демагогией - перечисляя недостатки ini-файлов забывают указать, что все эти недостатки - это недостатки их же API. Никто не запрещает написать свои собственные процедуры для работы и ini-файлами без каких-либо недостатков. Другое дело, что, как я уже писал, текстовый формат для этого не слишком удобен и изобретать придётся очередной велосипед. Но ведь никто не запрещает же? И изобретают и ini-файлы используют.
0
Заблокирован
11.03.2014, 13:39
...и так мы пришли к sqlite...
Бред ты написал короче.
0
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
11.03.2014, 14:59
Цитата Сообщение от Dr_Quake Посмотреть сообщение
...и так мы пришли к sqlite...
Бред ты написал короче.
Это о чём? Если это обращение ко мне, то где здесь бред? А вот в статье Реймонда Чена есть откровенный бред.
0
Заблокирован
11.03.2014, 17:33
Где - уходят от ini/xml и в никсах. Вон тебе андроид кстати где всё вообще в sqlite.
0
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
11.03.2014, 19:53
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Где - уходят от ini/xml и в никсах.
Я разве говорю, что это плохо? Я говорю, что те аргументы, о том, что ini файлы плохо, а реестр хорошо, и которые (аргументы) вот уже почти два десятка лет цитируют - вот это бред.
0
11.03.2014, 19:58
 Комментарий модератора 
Господа!!!
Разборки прекращаем
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
11.03.2014, 23:39
Smitis, Dr_Quake, если желаете продолжить, открыта тема: Реестр vs INI (XML)-файлы. Преимущества и недостатки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2014, 23:39
Помогаю со студенческими работами здесь

Изменения в реестре
Всем добрый день! Кто подскажет хорошую прогу для отслеживания изменений в реестре.Чтобы можна было определить изменения после установки...

Изменения значения в реестре Windows
здраствуйте .. у меня проблема в интернете немогу особо нужную мне информацию найти по реестру . вопрос в следуещем. как изменить...

Как восстановить изменения в реестре?
Дпустим я вносил какие то изменения в реестр вручную и что там запорол случайно и в системе начались непонятки. Могу ли я как то...

Применить изменения в реестре без перезагрузки
Ребят, я сделал, асоциацию файлов (внёс изменение в реестр), у меня возникла проблемма, для того что бы изменения вступили в силу...

Изменения в редакторе кода не вступают в силу
Суть такая: во время написания кода я его сохранял каждые 5 минут. Когда дошел до последнего варианта моего кода, я его запустил, но он...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru