|
Вопрос # 1 319/ вопрос открыт / |
|
Здравствуйте!Как заставить систему обновить курсоры? Дело в том что я прописал пути к новым курсорам в реестре, но изменения вступают в силу только после перезагрузки....
|
Вопрос задал: Аксион (статус: 4-ый класс)
Вопрос отправлен: 6 февраля 2008, 13:21
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Dron
Здравствуйте, Блазер!
Обычно для обновления посылают общесистемное сообщение:
SendMessage(HWND_BROADCAST, сообщение, 0, 0);
Изменяя второй параметр можно добиться разных результатов. К примеру, часто используются WM_WININICHANGE и WM_SETTINGCHANGE. Нужно экспериментировать. А также следует среди сообщений поискать что-нибудь связанное с курсором или экраном в целом. К примеру, есть сообщение WM_FONTCHANGE, из названия которого следует, что его нужно отправлять при изменении в системных шрифтах. Скорее всего, что-то аналогичное есть и для вашей цели.
|
Ответ отправил: Dron (статус: Студент)
Время отправки: 6 февраля 2008, 15:23
Оценка за ответ: 3
Комментарий к оценке: Мне вот именно и надо знать что это за сообщение.....(а эксперементы я не люблю...)
|
Ответ #2. Отвечает эксперт: min@y™
Дополню Дрона.
Почитал SDK по сабжу. Пишут, что WM_WININICHANGE оставлено для обратной совместимости со старыми прогами (устарело). Вместо него следует использовать сообщение WM_SETTINGCHANGE с параметром lParam - указателем на строку (с нулём на конце) с названием ключа реестра, в который были внесены изменения.
В данном конкретном случае, я думаю, надо вот это:
PostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('HKEY_CURRENT_USER\Control Panel\Cursors')));
З.Ы. Сам не пробовал, некогда.
|
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 7 февраля 2008, 08:53
Оценка за ответ: 5
Комментарий к оценке: СПС
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|