【问题标题】:Win API for changing input language programmatically用于以编程方式更改输入语言的 Win API
【发布时间】:2010-10-23 14:38:19
【问题描述】:

我想以编程方式将 WinXP 中的输入语言更改为西班牙语。有 API 支持吗?

谢谢

【问题讨论】:

  • 我只是好奇 - 你为什么要这样做?您是否正在编写更好的用户界面来选择语言?
  • 不,我有一个场景,用户可以添加新的语言键盘,但应用程序没有为他提供进入控制面板的功能。这是一个 Win Embedded 应用程序,只有 App UI,没有其他内容。
  • 我在寻找同样的东西 - 一种以系统范围的方式更改输入区域设置的编程方法,或者更改为我选择的任何应用程序...

标签: c++ winapi visual-c++ sdk


【解决方案1】:

【讨论】:

  • 感谢加杜。我注意到这些对流程级别的影响。系统级别还有什么?
  • 没人知道。显然,托盘图标可以在系统范围内更改语言。
【解决方案2】:

我设法通过键盘事件和快捷键分配来做到这一点。

  1. 转到“文本服务和输入语言”(这就是所谓的 windows 7 控制面板)
  2. 为单向语言分配键。例如“英语”和“希伯来语”。我选择了 Alt-Shift-7 和 Alt-Shift-8,因为它们很少在其他地方使用。
  3. 在需要时从您的应用发送相应语言的组合键。

注意:

如果“你的应用程序”是一个外部实用程序(我用 Python 编写了我的),那么它不能调用窗口,否则 /your-app/ 会窃取焦点,并且会改变语言。在 python 中,我通过使用无 GUI 的 pyw 脚本文件名解决了它。 (或使用 pythonw.exe 调用脚本)

这篇文章展示了如何在 python 中发送键盘事件:

https://python-decompiler.com/article/2012-11/how-to-generate-keyboard-events-in-python

【讨论】:

    猜你喜欢
    • 2016-07-15
    • 1970-01-01
    • 2018-12-15
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2018-08-09
    相关资源
    最近更新 更多