我遇到了一个奇怪的问题: 当我们的应用程序使用CreateProcessWithLogonW生成子进程时 使用alt-shift的切换语言在新进程的窗口中停止工作。 可能是什么问题?操作系统是XP SP3。 Win 7上的设置相同。
我发现的其他事情:此问题仅发生在Win XP Hebrew上。 在英语XP上它工作正常。
答案 0 :(得分:0)
正如Hans Passant所说,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]
的值为
{Key}列下的[HKEY_CURRENT_USER\Keyboard Layout\Preload]
值列出here。
[HKEY_CURRENT_USER\Software\Microsoft\CTF\LangBar]
的值为
相关资源包括