Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Применение изменений реестра без перезагрузки

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собственно сабж. Произведены изменения в реестре, как применить их без перезагрузки? Подчеркиваю, не из программы, а средствами самой Винды? Как пример (собственно это и надо) изменение набора курсоров. После прописывания в реестре, чтобы появился свой набор, мне требуется перезагрузка, но ведь при выборе из панели управления, перезагрузка не нужна. Что еще нужно сделать, какую программу запустить?

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 20:27 26-07-2008
Skipper



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кильни Explorer.exe, он сам должен потом запуститься. Возможно прокатит

Всего записей: 961 | Зарегистр. 23-06-2002 | Отправлено: 22:43 26-07-2008
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skipper
А если при этом открыты приложения? И как это сделать из бат-файла, или командной строки?

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 23:39 26-07-2008
vjunk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно послать широковещательное сообщение, типа такого:

Код:
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Policy", SMTO_NORMAL, 1000, &res);

Как это сделать из бат-файла - не знаю.

Всего записей: 303 | Зарегистр. 23-02-2005 | Отправлено: 00:42 27-07-2008
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli
Попробуй это: http://data.cod.ru/63805226442

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 01:09 27-07-2008
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron

Цитата:
Попробуй это: http://data.cod.ru/63805226442

Что  - "это"? Что за екзешник?
 
vjunk
Как это сделать из дельфи или VB я знаю, но мне нужно сделать это средствами Win.

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 19:01 27-07-2008
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli
Тогда либо командной строкой либо перезапуском эксплорера.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 19:58 27-07-2008
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron

Цитата:
Тогда либо командной строкой либо перезапуском эксплорера.

Ну так я и спрашиваю, КАК ЭТО СДЕЛАТЬ командной строкой???

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 20:14 27-07-2008
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli

Цитата:
Ну так я и спрашиваю, КАК ЭТО СДЕЛАТЬ командной строкой???

А хрен его знает.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 22:09 27-07-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli
Если изменения в ветке HKEY_CURRENT_USER, то

Код:
 
rundll32.exe user32.dll,UpdatePerUserSystemParameters
 

 

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 22:57 27-07-2008
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
И в этой ветке тоже. Я эту команду давно "откопал", но эффекта от нее ноль.
Пробовал такой вариант  rundll32.exe user32.dll,UpdatePerUserSystemParameters,1,True
но выдает ошибку.
 
Кстати, отследил монитором, что запускается при смене курсора через панель управления. Именно rundll32, вопрос только в том, с какими параметрами...
 

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 23:05 27-07-2008 | Исправлено: Kardinalli, 23:05 27-07-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробуй это
SystemParametersInfo(SPI_SETCURSORS
поиграй с параметрами

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:04 28-07-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli

Цитата:
Именно rundll32, вопрос только в том, с какими параметрами...  

Я как-то отследил недокументированную комстроку одной гнусной программки при помощи консольной cmdline.exe http://www.diamondcs.com.au/consoletools/cmdline.php
Она выводит в stdout список запущенных процессов и их строку запуска.
 
Сделал папку C:\test. Пуск-Выполнить-cmd. B командной строке ввел:
for /L %a in (1 1 1000) do cmdline>c:\test\%a.txt
Жмакнул Enter и сразу запустил нужную программку. Ну дальше понятно, поиском Far-а нашел среди тысячи файликов в папке c:\test нужные, из тыщщи файлов в четырех было то, что мне надо. Наверно попроще способы есть, но мне такое нечасто нужно, так использовал, что под рукой было

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 09:48 28-07-2008
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
Спасибо дружище! Если даже не поможет сейчас, то пригодится в будущем.
А пока попробую.
Маленькое уточнение - cmdline сбросить в system32 ?

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 20:51 08-08-2008 | Исправлено: Kardinalli, 20:57 08-08-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli
Ну да, в любую папку, которая прописана в переменной PATH, system32 вполне подходит.
Это, чтобы не писать в командной строке всегда полный путь к утилите, ... do d:\folder\subfolder\cmdline...
 
P.S. А это рубоард заменил в моем предыдущем посту слово "нашел" на ссылку http://dash.ru/_find/ ? Это так теперь реклама вставляется автоматом? Я понятия не имею, кто такие dash.ru и ссылку на них не давал

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 11:48 09-08-2008 | Исправлено: igor_andreev, 11:52 09-08-2008
copsmith



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ты не виноват. Это "продажная" реклама

Цитата:
Реклама цепляется к словам (10 шт.):  
Есть вероятность, что список не полный:  
скачал скачать скачай нашел купить купил статья обзор samsung телефона

Всего записей: 5563 | Зарегистр. 13-12-2005 | Отправлено: 20:54 15-08-2008 | Исправлено: copsmith, 20:54 15-08-2008
Ivax



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli

Цитата:
Подчеркиваю, не из программы, а средствами самой Винды

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

Всего записей: 270 | Зарегистр. 07-10-2003 | Отправлено: 06:48 25-08-2008
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ivax
У меня нет программы, из которой это нужно было бы сделать, но там это можно сделать без особых проблем через API.
А как сделать средствами исключительно Windows, я разобрался. Не слишком корректно, возможно, но для конкретной задачи отлично работает.

Всего записей: 704 | Зарегистр. 22-10-2006 | Отправлено: 21:58 26-08-2008
Ivax



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli
Цитата:
... я разобрался.  
Так поделись с народом, пусть и не очень корректно, главное работает.
 

Цитата:
... без особых проблем через API.
Вот без особых проблем не получается. Вполне приличный кусок кода (нашел в Королевстве Дельфи) и работает через раз. По этому и спросил, думал Вы такое уже делали.
 
 

Всего записей: 270 | Зарегистр. 07-10-2003 | Отправлено: 09:32 28-08-2008
demon1981



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kardinalli

Цитата:
А как сделать средствами исключительно Windows, я разобрался

не поделитесь?
 
Добавлено:
igor_andreev

Цитата:
Наверно попроще способы есть

for /L %a in (1 1 20000) do cmdline|find /i /v "bthprops.cpl"|find /i /v "3172"|find /i "rundll32">>c:\temp\1\1.txt
вот что-то попроще. В каждом конкретном случае можно параметры в файнд менять
 
Добавлено:
не в тему конечно, но раз уж пошел разговор...
как направить вывод от
Цитата:
for /L %a in (1 1 20000) do cmdline|find /i /v "bthprops.cpl"|find /i /v "3172"

в два фильтра и в 2 файла соответственно одновременно. Скажем, если мне надо найти строку "123" и строку "345"?

Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 11:18 20-10-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Применение изменений реестра без перезагрузки


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru