从服务启动时键盘布局错误
Wrong Keyboard Layout When Started from a Service
我有一个应用程序,它创建一个报告,并通过电子邮件将其发送给用户输入的收件人名称。在此之上,我们建立了一个自动化层,这样报告就可以被安排在特定的时间运行,并每次给相同的收件人发电子邮件。这是通过将收到的windows消息记录在一个文件中并使用PostMessage稍后播放它们来实现的。当由登录的用户运行时没有问题,但当从使用相同用户帐户登录的服务启动时就会失败。重新播放收件人邮箱地址从recipient_nam@domain.com变为recipient_name~domain.com
电子邮件地址中的"@"符号被替换为"~",我认为这是由于从服务启动时使用的键盘布局。@符号在英国英语键盘上有一个虚拟键代码VK_OEM_3,但在美国英语键盘上,对应于"Esc"键下的键,并且与shift相结合,给出了"~"字符。这也通过调用GetKeyboardLayout()得到支持,当由用户启动时产生0x0809(英国(GB)),当由登录为相同用户帐户的服务启动时产生0x0409(美国(US))。
我能找到的所有语言和区域设置都显示为English UK。英式美式键盘布局是从哪里学来的?我可以强制布局为英国英语吗?
一名微软客户服务代表摆弄了问题服务器上的地区/键盘设置,并设法将其重置,使服务帐户使用英语英国键盘。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 集合布局上的 Qt 分割错误
- 元数据操作失败LNK2022错误 (8013118D):重复类型中的布局信息不一致 (选择设备参数):(0x020002
- 假设传递给 OpenGL 的结构数组的内存布局存在潜在错误
- 输入布局,访问违规,错误处理不能像我希望的那样工作
- 通过C++从后台线程错误修改自动布局引擎
- C++布局新不断给出编译错误
- 清理Qt布局并添加其他小部件不起作用.幽灵小部件留下来.Qt错误
- GLSL - 程序链接错误:插槽 0 在布局位置请求中不可用
- 从服务启动时键盘布局错误