Как удалить пользовательскую раскладку клавиатуры в Windows?

25

Как удалить пользовательскую раскладку клавиатуры в Windows?

Если раскладка клавиатуры была установлена ​​с помощью установщика Windows, вы обычно удаляете ее, используя ее запись в диалоговом окне « Установка и удаление программ ».

Настраиваемая раскладка клавиатуры, которую я хочу удалить, была установлена ​​с помощью установщика Windows ( .msi ). Из-за проблемы установщика у него нет записи в диалоговом окне « Установка и удаление программ ». Однако он отображается в раскрывающемся списке клавиатуры в диалоговом окне « Параметры клавиатуры и языка ». Я хочу удалить его из этого списка, так как у этого конкретного макета есть некоторые проблемы.

Если вам интересно, как это произошло: я играл с инструментом Microsoft Keyboard Layout Creator . Я создал установщик для своей пользовательской раскладки клавиатуры, и некоторые вещи были испорчены во время нескольких сеансов установки-удаления этой раскладки.

Эшвин Нанджаппа
источник
1
@ user2284570 - Стоп. Просто Стоп. Ваше редактирование добавляет нерелевантные теги.
Ramhound

Ответы:

26

у вас еще есть MSI? Возможно, вы можете запустить его с msiexec /u? Или переустановить его снова?

По сути, должно быть невозможным, чтобы MSI-файл не создавал запись удаления (и не будет откатываться при попытке установить любой другой MSI-файл). Если вы удалили запись удаления вручную, вы все равно можете удалить ее через msiexec / u, но вам нужно будет найти GUID установщика для этого (что может быть трудно найти, если у вас установлено много файлов ...)

Если это не удается: сами записи находятся в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts, так что вы можете как минимум удалить запись для своего макета (если не удалить .dll и прочее).

Михи
источник
2
Спасибо, я смог удалить его, найдя его в указанном выше разделе реестра. :-)
Эшвин Нанджаппа
Спасибо за этот ответ. Мне это было нужно! Командная строка в порядке вещей msiexec /u (filename).msi? Это ничего не сделало для меня - никаких сообщений об ошибках, ничего не было удалено и т. Д. - так что мне пришлось делать это тоже нелегко. Ну что ж.
Мистер Листер
кажется, что некоторые версии установщика Windows предпочитают msiexec /x (filename).msiвместо этого. Но вы должны хотя бы получить сообщение об ошибке.
Михи
В моем случае после удаления пользовательской раскладки клавиатуры в Windows 10 раздел реестра не был удален, даже если был удален файл .dll, на который он указывал. Очистка раздела реестра решила проблему.
Шлугуг
7

Я сделал то же самое один раз, если вы не можете удалить с помощью MSI, выполните следующие действия:

  1. Обратите внимание на тот же DLL-файл, который вы установили с помощью MSI.
  2. Найдите его на локальном диске и удалите вхождение в sys32.
  3. Откройте редактор реестра и перейдите к HKLM\System\CurrentControlSet\Control\Keyboard Layouts
  4. Просмотрите все подпапки, пока не найдете тот, который ссылается на вашу пользовательскую DLL
  5. Удалить подпапку
  6. Перезагрузите машину

После этого вы можете переустановить обновленную версию вашего макета с тем же именем DLL без каких-либо конфликтующих проблем.

Майк
источник
2

Попался.

Это будет раздел реестра под HKLM\System\CurrentControlSet\Control\Keyboard Layouts.

Так как это пользовательский макет, вам придется просмотреть все подпапки, чтобы найти его.

Примечание: Prudence требует создать резервную копию (щелкните правой кнопкой мыши> экспортировать) перед удалением папки из реестра. :)

ctype.h
источник
2

Перейти в каталог установки ( (Drive):\Users\(Username)\Documents\(Layout Name (like US-PS))\setup.exe): открыть установку. У него будет 2 варианта, просто выберите первый («Удалить раскладку клавиатуры»), подождите, пока он не будет удален, и вы удалите его. Я только что сделал это.

user455764
источник
1

Я верю, что знаю, почему это произошло. Создатель делает несколько .msis для различных архитектур и a setup.exe. Если вы запустите один из них .msiнапрямую, деинсталлятор не будет создан. Вы должны использовать setup.exeсозданное вместо этого.

Простое решение, как говорит Михи: запустить .msiс /uninstallфлагом.

Кевин Инь
источник