Войти

Показать полную графическую версию : [решено] Как с помощью .bat файла добавить / удалить метод ввода (раскладку)?


FalseTrue
29-07-2015, 10:52
Приветствую всех технических специалистов!

Коллеги, подскажите, пожалуйста, возможно ли создать два .bat файла, один из которых после выполнения добавлял украинскую раскладку, а второй — удалял? Если да, то какой код необходимо в них поместить?

UPD: забыл указать, что использую Windows 8.1.

Kazun
29-07-2015, 11:12
Чем PowerShell не угодил?

#Добавить мову
$list = Get-WinUserLanguageList
$list.Add("uk-UA")
Set-WinUserLanguageList -LanguageList $list -Force

#Удалить мову
$list = (Get-WinUserLanguageList).where{$_.LanguageTag -ne "uk"}
Set-WinUserLanguageList -LanguageList $list -Force

FalseTrue
10-08-2015, 11:34
Kazun, здравствуйте! Большое спасибо за ваш ответ. Подскажите, пожалуйста, ещё по такому вопросу: правильно ли я поступил, сохранив скрипты добавления / удаления украинской раскладки с расширением .ps1 ? В Windows 8.1 почему-то по двойному клику такие файлы не исполняются, а просто открываются в стандартном блокноте. Выполнить их можно, как я понимаю, только с помощью нажатия на ПКМ > Выполнить с помощью PowerShell.

И, кстати, скрипт добавления украинской раскладки добавляет расширенную версию, а какой код должен быть для добавления обычной украинской раскладки? Извините, что так долго не реагировал на ваш ответ, просто я рассчитывал, что подписавшись на топик мне сразу же придут уведомления на email, как это было раньше, но этого, к сожалению, не произошло. Сам решил посетить форум, т. к. был удивлён, что не ответили, но потом был очень рад, когда обнаружил ваш полезный ответ.

UPD: почитав немного про политику безопасности PowerShell, кажется, понял, почему нельзя по умолчанию выполнять скрипты по двойному клику — это небезопасно. Но возможно как-то для двух этих скриптов указать так, чтоб они выполнялись по двойному клику по ним? Я разместил два скрипта на рабочем столе, и очень было бы удобно просто кликать по ним для выполнения.

Iska
10-08-2015, 12:54
В Windows 8.1 почему-то по двойному клику такие файлы не исполняются, а просто открываются в стандартном блокноте. »
Они нигде по умолчанию не исполняются.

Но возможно как-то для двух этих скриптов указать так, чтоб они выполнялись по двойному клику по ним? »
Нет, нельзя. Но Вы можете создать пакетный файл, который будет вызывать исполняемый модуль PowerShell и передавать ему полный путь к скрипту.

Foreigner
10-08-2015, 13:49
Нет, нельзя. »
Можно еще переназначить ассоциации файлов.

Iska
10-08-2015, 13:52
Можно еще переназначить ассоциации файлов. »
Имелось в виду именно:
Но возможно как-то для двух этих скриптов указать так, чтоб они выполнялись по двойному клику по ним? »

FalseTrue
10-08-2015, 14:22
Нет, нельзя. Но Вы можете создать пакетный файл, который будет вызывать исполняемый модуль PowerShell и передавать ему полный путь к скрипту. »
Подскажите, пожалуйста, как это реализовать?

Iska
10-08-2015, 14:54
powershell command line - Поиск в Google (https://www.google.com/search?q=powershell+command+line&ie=utf-8&oe=utf-8). От версии к версии набор параметров может отличаться. Как я понимаю, это должно быть как-то так:
PowerShell.exe -NoLogo -File "Путь\Имя.ps1"

FalseTrue
10-08-2015, 16:28
Всем большое спасибо за помощь. Остановился на рекомендации (http://forum.oszone.net/post-2533701.html#post2533701) Kazun, но ещё хотелось бы научиться добавлять не расширенную украинскую раскладку, а обычную. Может кто знает?

Foreigner
10-08-2015, 16:51
FalseTrue, Посмотрите список и выберите, чем отличаются обычная от расширенной не знаю:

[system.globalization.cultureinfo]::GetCultures("AllCultures")

Kazun
10-08-2015, 17:26
$list = Get-WinUserLanguageList
$list.Add("uk")
$list[-1].InputMethodTips.Clear()
$list[-1].InputMethodTips.Add('0422:00000422')
Set-WinUserLanguageList -LanguageList $list -Force




© OSzone.net 2001-2012