【问题标题】:How to change current keyboard layout in powershell?如何在powershell中更改当前的键盘布局?
【发布时间】:2012-05-01 06:21:19
【问题描述】:

我在 Windows 设置中设置了两种语言 - 捷克语(默认)和英语(用于编程)。我想在 powershell 中在它们之间切换。

我通常使用捷克语工作,它是我电脑上的默认语言。因此,每当我(重新)启动任何应用程序时,它都会以捷克语键盘布局开始。

但我正在使用英文布局进行编程。因此,当我开始新的编程应用程序(即 powershell 窗口)时,我总是需要点击 Alt+Shift。

有没有办法通过powershell中的一些命令来做到这一点?或者在 C# 中,可能通过一些 win32 api 调用(因为我可以为此制作自己的小 cmdlet)?

我发现了这个question(和其他一些人),但我不太了解它(他们)......

我从未使用过 Win API,所以我不知道究竟有什么可能以及如何使用它...

有人有一些 cmdlet 或小教程如何做到这一点吗?

【问题讨论】:

  • 好吧,您可以将 API 调用包装到您使用 Add-Type 添加的 C# 类中。不漂亮,但应该以某种方式工作。
  • 是的,这是我的想法。但我从未编写过 WinAPI,所以我想有人可以用几行代码帮助我。
  • ActivateKeyboardLayout 是您正在寻找的... msdn.microsoft.com/en-us/library/windows/desktop/… ... 但是这是否适用于控制台窗口,其中不知道什么是进程,什么只是线程我不清楚总是很容易区分。
  • 这看起来很有希望。谢谢,这是很好的开始。我会在晚上搜索这个。
  • 我刚试过ActivateKeyboardLayout功能。它适用于 WinForms,但不适用于控制台应用程序。 (我正在用 C# 进行测试)。关于为什么控制台应用程序行为不同的任何想法?

标签: winapi powershell keyboard


【解决方案1】:

我找到了不错且非常简单的解决方案! Codeplex 上有WASP 项目。该项目允许操作窗口,向它们发送键并向它们发送点击。

我的问题的解决方案是在 powershell 启动时导入 WASP 模块,然后选择 powershell 窗口(使用 WASP)并向其发送 Alt+Shift 键击(使用 WASP)。

这是包含在 powershell profile.ps1 文件中的代码,以便将语言更改为下一个:

Import-Module WASP
Select-Window powershell | Send-Keys "%+" # '%' = ALT key, '+' = SHIFT key

【讨论】:

    【解决方案2】:

    转到控制面板,打开区域和语言选项。

    点击详情...

    单击添加和删除以管理您需要的语言。

    添加您的语言。点击确定退出。

    键盘布局发生变化,可以通过语言栏切换。

    您也可以查看此链接:

    http://krypted.com/commands/powershell-commands/

    【讨论】:

    • 好吧,我没有要求 Windows 设置。我没那么笨(虽然,也许我的英语是)。我要求进行切换的powershell功能。我也知道在哪里可以找到 PS 命令列表。它们都没有被命名为 Switch-KeyboardLayout...
    猜你喜欢
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    相关资源
    最近更新 更多