Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] перезагрузить оболочку Windows

Ответить
Настройки темы
CMD/BAT - [решено] перезагрузить оболочку Windows

Аватара для shao

Ветеран


Сообщения: 1014
Благодарности: 194

Профиль | Отправить PM | Цитировать


Изменения
Автор: shao
Дата: 30-07-2011
Пытаюсь перезагрузить оболочку Windows из пакетного файла командой:

Код: Выделить весь код
RUNDLL32 SHELL32, SHExitWindowsEx -1
говорит, что ошибка в SHELL32, нет такого параметра SHExitWindowsEx



Что, на Windows XP такие команды не действуют ?

Если так - в таком случае подскажите пожалуйста, как перезагрузить оболочку (вместе с реестром) ?
Задача - после установок различных программ сделать перезагрузку/обновление (реестр в том числе обязательно) не перезагружая компьютер.
(Можно не средствами CMD/BAT )

Спасибо.

Отправлено: 11:18, 25-07-2011

 

Аватара для shao

Ветеран


Сообщения: 1014
Благодарности: 194

Профиль | Отправить PM | Цитировать


Цитата Iska:
А так:...... »
Действительно - это и есть тот способ , который предложил Vadikan

Iska, а как же
Цитата Iska:
......без снятия процесса «explorer.exe»? »
если этот процесс потом нужно запускать через Диспетчер ?!!

Я так понял , что метод один и тот же - перезагрузка оболочки методом остановки процесса explorer.exe, с последующим его перезапуском.

Вопрос остаётся тот же:
Если других способов нет - подходят ли варианты , описанные в посте
№7 для перезагрузки оболочки и реестра ?
(есть сомнения на счёт реестра ...)

Последний раз редактировалось shao, 30-07-2011 в 01:03.


Отправлено: 00:56, 30-07-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата shao:
есть сомнения на счёт реестра »
shao, тестил на 2 программах, код перезагрузки реестра работает.
Код: Выделить весь код
regedit /s 7.reg
start nircmd.exe sysrefresh
p.s. nircmd v.2.65 Windows XP SP3

Последний раз редактировалось sov44, 30-07-2011 в 09:47.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:37, 30-07-2011 | #12


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
Iska, так это первый способ по моей ссылке »
Каюсь, грешен:
читать дальше »
Прочитав,
Цитата shao:
Vadikan, Второй способ , который описывается в приведённой выше Вами ссылке :
Цитата:
Способ второй.
........Откройте меню «Пуск», затем, удерживая нажатыми клавиши CTRL+SHIFT,
щелкните правой кнопкой мыши по кнопке завершения работы или по соседству
с ней. Из меню выберите пункт Выход из проводника.
не действует на XP. »
я, не ознакомившись сам с первоисточником, привёл ссылку в #9.

Лишь прочитав в #10:
Цитата Vadikan:
Iska, так это первый способ по моей ссылке »
я обратил внимание на слова «Второй способ , который описывается…» и «это первый способ…», сходил по ссылке и узрел, что всё, что потребно, там присутствовало, коллега shao вначале, возможно, просто посмотрел сие, а я, к сожалению, не проверил первоисточник.

Приношу Вам и коллеге shao свои извинения.

Цитата shao:
Действительно - это и есть тот способ , который предложил Vadikan »
Да. Мои изъяснения и извинения — под спойлером выше.

Цитата shao:
Iska, а как же
Цитата Iska:
…без снятия процесса «explorer.exe»?
если этот процесс потом нужно запускать через Диспетчер ?!! »
Без снятия процесса — это означает, что мы процесс не снимаем, а отправляем ему уведомление с просьбой о завершении, в результате чего у него есть время и возможность выполнить какие-то операции перед своим завершением. А так — да. Запускать потом надо.
Цитата shao:
Я так понял , что метод один и тот же - перезагрузка оболочки методом остановки процесса explorer.exe, с последующим его перезапуском. »
taskkill — отчасти «да», ибо он отсылает уведомление о завершении в оконную процедуру процесса; при применении же параметра «/f» — просто принудительно завершает процесс.

Коллеги, пожалуйста, забудьте о таком термине, как «перезагрузка реестра», ибо это некорректно. Есть два стандартных способа: выгрузить и заново запустить приложение, дабы оно само прочитало новое содержимое реестра, либо отправить или разослать сообщение WM_SETTINGCHANGE. И даже в последнем случае, если приложение следит за данными сообщениями, то само действие остаётся на усмотрение приложения — читать или не читать новые данные из реестра.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:57, 31-07-2011 | #13


Аватара для shao

Ветеран


Сообщения: 1014
Благодарности: 194

Профиль | Отправить PM | Цитировать


Iska, спасибо большое за разъяснения !

Я правильно понял:
- чтобы корректно, например сработал твик, касающийся визуальных изменений на рабочем столе
достаточно перезагрузить эксплорер. И т.д.
Если , например твик касается работы другого приложения или службы , чтобы он сработал - нужно перезапустить соответствующее приложение или службу.
?

Вот только у меня такая ситуация сложилась:
Устанавливаю программу, перед этим деинсталлировав старую версию.
При установке программы идет запрос на перезагрузку компьютера в связи с деинсталляцией предыдущей.
(Хотя все "хвосты" за ней подчистил вручную везде.)
Никакие методы обговоренные выше не помогают. Всё-таки приходится перезагружать компьютер.

Вот и пытаюсь понять, что происходит и как избежать перезагрузки ПК. Чем её можно заменить ?

Последний раз редактировалось shao, 31-07-2011 в 22:19.


Отправлено: 21:10, 31-07-2011 | #14


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата shao:
программы идет запрос на перезагрузку компьютера в связи с деинсталляцией предыдущей »
Необходимость перезагрузки при деинсталляции не всегда связана с "хвостами" в реестре. Иногда деинсталлятор не может удалите некоторые файлы занятые системой и откладывает их удаление до перезагрузки (примером может служить WinRAR в некоторых случаях).
Нужно принять обязательность перезагрузки, в некоторых случаях, как суровую необходимость и смирится с ней. Даже M$ после установки большинства своих обновлений требует перезагрузки, значит и они не знают другого способа...
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:32, 31-07-2011 | #15


Аватара для shao

Ветеран


Сообщения: 1014
Благодарности: 194

Профиль | Отправить PM | Цитировать


Цитата gora:
Необходимость перезагрузки при деинсталляции не всегда связана с "хвостами" в реестре. »
Я чистил всё и не только реестр. Удалял всё вручную....

Но , Вы gora, меня немного "успокоили"
Спасибо!

Отправлено: 22:49, 31-07-2011 | #16


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Появился-ли способ автоматического обновления реестра без перезагрузки пк\explorer для Windows 7 и выше после внесения в реестр изменений ? Команда nircmd.exe sysrefresh на этих системах не действует.

Отправлено: 17:12, 16-02-2017 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] перезагрузить оболочку Windows

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - как создать оболочку для запуска диска krazy Программирование и базы данных 3 16-07-2009 16:52
Не могу запустить оболочку для Windows XP. teapot08 Хочу все знать 2 04-06-2009 09:46
Как сделать оболочку диска. ФИЛЯ Программное обеспечение Windows 4 09-01-2008 14:53
Перезагрузить Windows 2000 AlexK47 Microsoft Windows NT/2000/2003 2 19-03-2006 00:18
оболочку для создания книг lad4 Хочу все знать 3 19-12-2004 12:49




 
Переход