Как сказал Ганс Пассант, CreateProcessWithLogonW
требует, чтобы для LOGON_WITH_PROFILE
было установлено значение dwLogonFlags
, что является четвертым аргументом функции для загрузки куста реестра пользователей в HKEY_USERS.Это гарантирует, что доступ к информации в разделе реестра HKEY_CURRENT_USER будет давать результаты, которые соответствуют обычному интерактивному входу в систему.
Также вы можете вызвать функцию LoadUserProfile
перед вызовом CreateProcessWithLogonW
.
Настройки реестра, которые вы хотите проверить, существуют для пользователя, чей профиль вы загружаете, включают
[HKEY_CURRENT_USER\Keyboard Layout\Toggle]
"Hotkey"="3"
"Language Hotkey"="3"
"Layout Hotkey"="3"
[HKEY_CURRENT_USER\Keyboard Layout\Preload]
"1"="00000809"
"2"="e00e0804"
[HKEY_CURRENT_USER\Software\Microsoft\CTF\LangBar]
"ShowStatus"=dword:00000000"
Значения [HKEY_CURRENT_USER\Keyboard Layout\Toggle]
:
- 1 Включена последовательность клавиш;используйте Left-ALT + SHIFT для переключения между локалями.
- 2 Последовательность клавиш включена;используйте CTRL + SHIFT для переключения между локалями.
- 3 Последовательности клавиш отключены.
- 4 Если по умолчанию используется тайский язык, клавиша accent grave переключает вводимые локали;в противном случае последовательности клавиш отключены.
Значения [HKEY_CURRENT_USER\Keyboard Layout\Preload]
перечислены здесь в столбце KeyName.
Значения [HKEY_CURRENT_USER\Software\Microsoft\CTF\LangBar]
равны
- 0 Плавающий на рабочем столе
- 4 Пристыкован к панели задач
- 3, если задано значение Скрыто, что является значением по умолчанию.
Соответствующие ресурсы включают