2012-04-19 11 views
3

У меня есть два языка, установленные в настройках моих окон - чешский (по умолчанию) и английский (для программирования). Я хочу переключаться между ними в powershell.Как изменить текущую раскладку клавиатуры в powershell?

Я вообще работаю на чешском языке, и это мой язык по умолчанию на моем ПК. Поэтому всякий раз, когда я (повторно) запускаю любое приложение, оно начинается с чешской раскладки клавиатуры.

Но я программирую английский макет. Поэтому мне всегда нужно нажать Alt + Shift, когда я запускаю новое приложение для программирования - то есть окно powershell.

Есть ли способ сделать это с помощью некоторой команды в powershell? Или в C#, возможно, через какой-то вызов win32 api (поскольку я мог бы сделать для себя небольшой командлет)?

Я нашел этот question (и некоторые другие), но я не понял (их) много ...

Я никогда не работал с Win API, так что я не знаю, что именно можно и как работать с ним ...

Есть ли у кого-нибудь командлет или небольшой учебник, как это сделать?

+0

Ну, вы могли бы обернуть API вызовы в C# класса добавляемого с 'Add-type'. Не очень, но должен как-то работать. – Joey

+0

Да, это на мой взгляд. Но я никогда не программировал WinAPI, поэтому я думал, что кто-то может помочь мне с несколькими строками кода. – jumbo

+0

'ActivateKeyboardLayout' - это то, что вы ищете ... http://msdn.microsoft.com/en-us/library/windows/desktop/ms646289(v=vs.85).aspx ... но работает ли это в консольном окне, где идея о том, что представляет собой процесс и что такое поток, не всегда хорошо различима, мне непонятно. – 0xC0000022L

ответ

0

я нашел хороший и очень простое решение! На Codeplex есть проект WASP. Этот проект позволяет управлять окнами, отправлять им ключи и отправлять клики на них.

Решение проблемы заключается в том, чтобы импортировать модуль WASP при запуске powershell, затем выбрать окно powershell (используя WASP) и отправить ему Alt + Shift (с помощью WASP).

Вот код, чтобы включить в PowerShell profile.ps1 файл, чтобы изменить язык к следующему:

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

Перейдите на панель управления, откройте региональные и языковые параметры.

Нажмите Подробнее ...

Нажмите кнопку Добавить и Удалить, чтобы управлять вам языки.

добавить свой язык. Нажмите OK, чтобы выйти.

Изменение раскладки клавиатуры, вы можете переключить их с помощью языковой панели.

вы также можете проверить эту ссылку:

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

+1

Ну, я не просил установки окон. Я не настолько глуп (хотя, может быть, мой английский). Я попросил функцию powershell, которая выполняет переключение. Я также знаю, где найти список команд PS. Ни один из них не назван Switch-KeyboardLayout ... – jumbo

+0

@ jumbo oh sorry! – Elnaz

Смежные вопросы