2

Информация о раскладке клавиатуры хранится в DLL раскладки клавиатуры в Windows. Можно создать пользовательский макет, используя такой инструмент, как Microsoft Keyboard Layout Creator (http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx). Он создает динамическую библиотеку, а также установщик, который размещает библиотеку DLL в нужном месте, а также помещает необходимую информацию в реестр, чтобы можно было использовать макет.

Теперь мой вопрос. Как можно обновить свой пользовательский макет? Можно удалить макет и установить новую версию, которая эффективно заменяет файл DLL. Однако это само по себе не работает, потому что кажется, что старая копия DLL где-то загружается и используется, когда вместо загрузки новой версии задается макет. Так есть ли способ, как сказать системе, что ее «кеш раскладки клавиатуры» недействителен? Конечно, я мог бы перезагрузить всю систему, но я хотел бы избежать этого, так как это раздражает и кажется плохим дизайном для перезагрузки всей системы просто для перезагрузки DLL.

1 ответ1

1

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

Из статьи « Отладка с помощью оболочки» :

Оболочка автоматически выгружает любую DLL, когда ее счетчик использования равен нулю, но только после того, как DLL не использовалась в течение определенного периода времени. Этот неактивный период может быть недопустимо долгим, особенно когда отлаживается DLL расширения Shell. Вы можете сократить период неактивности, добавив следующую информацию в реестр.

  1. Откройте редактор реестра (Пуск -> Выполнить -> Regedit)
  2. Выделите:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
  3. Нажмите на Edit -> New, затем DWORD Value
  4. Создайте значение DWORD с именем AlwaysUnloadDll
  5. Щелкните правой кнопкой мыши это значение, затем выберите «Изменить».
  6. Установите значение данных в 1, а затем нажмите OK.
  7. Закройте редактор реестра и перезагрузите компьютер.
  8. Теперь неиспользуемые DLL будут удалены после закрытия программ.

Постоянный запуск с этим параметром может замедлить работу компьютера, поскольку Windows будет продолжать загружать и выгружать одни и те же библиотеки DLL при запуске программ. Рекомендуется использовать только при редактировании шрифта.

Как дальнейшее замечание, я не знаю, работает ли этот параметр также с библиотеками шрифтов. Вам придется экспериментировать и посмотреть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .