Что нового

Обновление оперативной памяти

Cytrus

Новичок
Сообщения
103
Репутация
3
Привет.

Вот я изменил настройки в системном реестре.
Но в оперативной памяти сидят старые настройки.

Как обновить память?
 
Автор
Cytrus

Cytrus

Новичок
Сообщения
103
Репутация
3
А разве невозможно отправить какое-нибудь броадкаст WM-сообщение с помощью какой-нибудь API-функции?

Вот, допустим, я внёс параметры системной громкости.
Ведь sndvol32.exe как-то-же обновляет. Наверное, с помощью winmm.dll.
Типа, mciSendCommandA.

Я знаю, что есть.
Код:
SoundSetWaveVolume

Это только для примера.
 

InnI

AutoIT Гуру
Сообщения
4 434
Репутация
1 200
Представьте, вы создали скрипт, который при выходе сохраняет значение переменной в реестр, а при запуске считывает его. Я запустил ваш скрипт, открыл редактор реестра и изменил это значение. И что должен делать ваш скрипт? Либо мониторить это значение реестра, либо ожидать уникальное сообщение.

Cytrus [?]
Это только для примера.
Вот сейчас мы перелопатим инет и научимся отправлять сообщение об изменении уровня системного звука. А потом вы скажете: "У меня не получается, потому что я не со звуком работаю". Поэтому давайте сразу определитесь, какие параметры вы меняете в реестре и что от них зависит. А дальше уже надо будет разбираться, какие сообщения рассылать.
 
Автор
Cytrus

Cytrus

Новичок
Сообщения
103
Репутация
3
Ничего не зависит, я пока ничего не делаю, а только учусь.
Так сказать, собираю информацию по крупицам.

Ну вот должна же быть какая-то API-функция, которая обновляет оперативную память всю,
или в завистимости от области применения, какой-то её сегмент.

Например, от параметров устройства, раскладки клавиатуры, региональных настроек,
драйверов, кодеков, CLSID-ов, интерфейсов, системных шрифтов, и т.д.
 

InnI

AutoIT Гуру
Сообщения
4 434
Репутация
1 200
Cytrus [?]
должна же быть какая-то API-функция, которая обновляет оперативную память всю,или в завистимости от области применения, какой-то её сегмент
Нет такой функции. Есть функции, изменяющие определённые значения. Есть функции, рассылающие уведомления об изменениях. И есть программы (в том числе и сама Windows), обрабатывающие эти сообщения и обновляющие собственную память.

Если теоретически, то функция PostMessage может делать широковещательную рассылку, если вместо дескриптора конкретного окна указать 0xFFFF (см. справку)
Код:
_WinAPI_PostMessage()
Следовательно, если вы знаете код и параметры сообщения, то через эту функцию можно сделать рассылку всем окнам верхнего уровня. Если программа ожидает это сообщение, то она его обработает и, при необходимости, обновит определённые значения.
 
Верх