1

У меня более двух языков, поэтому мне удобно работать, когда горячие клавиши заданы следующим образом:

  • Английский - Ctrl+1
  • Немецкий - Ctrl+2
  • Шведский - Ctrl+3

При перезагрузке Windows настройки исчезают каждый раз.

Информация об ОС: Windows 10 64-bit, версия 1803, сборка ОС 17134.48

По некоторым причинам Windows 7 и 8 не имеют этой проблемы.

Кто-нибудь знает, как это можно решить?

1 ответ1

1

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

  1. Загрузите эту бесплатную утилиту https://autohotkey.com
  2. Создайте файл * .ahk и вставьте скрипт

    ; This should be replaced by whatever your native language is. See 
    ; http://msdn.microsoft.com/en-us/library/dd318693%28v=vs.85%29.aspx
    ; for the language identifiers list.

    en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1)
    de := DllCall("LoadKeyboardLayout", "Str", "00000C07", "Int", 1)
    sv := DllCall("LoadKeyboardLayout", "Str", "0000081D", "Int", 1)

    ^1::
    w := DllCall("GetForegroundWindow")
    pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
    l := DllCall("GetKeyboardLayout", "UInt", pid)
    PostMessage 0x50, 0, %en%,, A
    return

    ^2::
    w := DllCall("GetForegroundWindow")
    pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
    l := DllCall("GetKeyboardLayout", "UInt", pid)
    PostMessage 0x50, 0, %de%,, A
    return

    ^3::
    w := DllCall("GetForegroundWindow")
    pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
    l := DllCall("GetKeyboardLayout", "UInt", pid)
    PostMessage 0x50, 0, %sv%,, A
    return


Обратите внимание, что мы определяем язык следующим образом:

sv := DllCall("LoadKeyboardLayout", "Str", "0000081D", "Int", 1)

Идентификатор языка для шведского языка в соответствии с веб-сайтом, указанным в сценарии:

0x081D

что означает, что мы берем только последние 3 символа

81D

и префикс их с 5 нулями, например

0000081D
  1. После этого вы создаете файл * .exe с помощью вышеупомянутого приложения.
  2. Поместите исполняемый файл в папку автозапуска Windows 10

нажмите Win+R, затем введите

shell:startup

нажмите Enter и вы увидите папку - и все!

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