【发布时间】: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