ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
25 мая
1520160 Топик полностью
VVB (23.05.2025 15:57, просмотров: 113) ответил teap0t на Ребята, подскажите малограмотному, есть ли команда переключения языка ввода клавиатуры ? Типа в консоли набрал, и - опа! - язык переключился. Оно должно существовать, но я не знаю где искать.
дык ИИ же: 

В Windows можно сменить раскладку клавиатуры через командную строку (CMD) или PowerShell с помощью утилиты `PowerShell` или `rundll32`.

### **1. Смена раскладки через PowerShell (рекомендуемый способ)**

Откройте **CMD** или **PowerShell** и выполните:

```powershell

powershell -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('% ')"; [System.Windows.Forms.SendKeys]::SendWait('{SCROLLLOCK}'); [System.Windows.Forms.SendKeys]::SendWait('{SCROLLLOCK}')

```

Этот метод имитирует нажатие `Alt + Shift` (стандартное сочетание для переключения раскладки).

**Альтернативный вариант (если предыдущий не работает):**

```powershell

powershell -command "$klist = Get-WinUserLanguageList; $klist.Add('ru-RU'); Set-WinUserLanguageList -LanguageList $klist -Force"

```

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

---

### **2. Смена раскладки через `rundll32` (устаревший способ, может не работать в новых версиях Windows)**

```cmd

rundll32 keyboard,{default layout hotkey}

```

Где `{default layout hotkey}` — это:

- `,,0x29` для переключения (`Alt+Shift`)

- `,,0x1` для английской

- `,,0x2` для русской

Но этот метод часто не работает в Windows 10/11.

---

### **3. Использование AutoHotkey (если нужен надежный способ)**

Можно создать скрипт **AutoHotkey** (`switch_layout.ahk`):

```autohotkey

!^s:: ; Alt+Ctrl+S для переключения

Send, {Alt down}{Shift down}{Shift up}{Alt up}

return

```

Запустите его, и тогда можно переключать раскладку по `Alt+Ctrl+S`.

---

### **Вывод**

Лучший вариант — **PowerShell с `SendKeys`** (первый способ). Если не работает, попробуйте AutoHotkey или добавление языка через `Set-WinUserLanguageList`.

Если нужно переключать раскладку в **батч-файле**, используйте:

```cmd

@echo off

powershell -command "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('%% ')"; exit

```

Попробуйте разные методы, так как поведение может зависеть от версии Windows.