Получение хоста для захвата определенных нажатий клавиш в VirtualBox


48

Я использую VirtualBox на Ubuntu 9.10 с Windows XP в качестве гостевой ОС.

Это довольно раздражает, когда я в гостевой ОС - я не могу переключать виртуальные рабочие столы (рабочие пространства) на хосте (Ubuntu), нажимая Control+ Alt+ ( Left| Right| Up| Down), потому что VirtualBox захватывает эти комбинации клавиш.

Можно ли отключить захват клавиатуры для некоторых комбинаций клавиш?

Ответы:


27

Хотя есть некоторые сочетания клавиш Host Key, которые активируют определенные функции VirtualBox (например, Host Key+, Pкоторый останавливает гостя), я не знаю ни одного способа настройки VirtualBox для отправки сочетаний клавиш Host в ОС хоста.

Однако, поскольку VirtualBox имеет версию с открытым исходным кодом , возможно, можно изменить исходный код, чтобы добавить эту функцию. Вы можете получить доступ к исходному коду VirtualBox по ссылке Скачать .

В то же время, вы можете использовать Host Key, чтобы освободить клавиатуру от гостевого элемента управления VirtualBox. По умолчанию ключ хоста установлен на Right Ctrl. Вы можете увидеть текущий ключ хоста в окне виртуальной машины:

альтернативный текст

Просто нажмите клавишу Host один раз, чтобы освободить захват клавиатуры. После этого ваша хост-ОС увидит ваши нажатия клавиш. Итак, вот ваш рабочий процесс:

  1. Нажмите и отпустите клавишу хоста. Ваша гостевая ОС больше не фиксирует нажатия клавиш.
  2. Нажмите Ctrl+ Alt+ (клавиша со стрелкой) для переключения рабочих пространств или любых других клавиш, которые вы хотите отправить в ОС хоста.

Было бы неплохо ... Но [Left Ctrl] + [Alt] тоже не работает ... Это вообще не зависит от клавиши хоста, VBox фиксирует все нажатия клавиш.
— Александр Смирнов

извините, я неправильно понял ваш вопрос; я думал, что у вас есть гость Ubuntu на хосте XP. обновил ответ.
— шарлатан-кихот

1
Хорошо, спасибо, надеюсь, я найду время для небольшого расследования, чтобы добавить эту функцию
— Александр Смирнов

@quack Gaff Если один, где настроить исходный код. Было бы легко перестроить VMware, чтобы использовать его? на макосе?
— Момомо

15

Этот вопрос старый, но я нашел лучшее решение, которого, вероятно, тогда не было.

Вы можете отключить «Автосъемка клавиатуры» в окне «Менеджер» -> «Файл» -> «Настройки» -> «Ввод»:

введите описание изображения здесь

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

В этом режиме ключ «хост» имеет противоположный эффект - он позволяет захватывать вместо того, чтобы отключить его.


9
Недостатком этого является то, что теперь вы должны помнить, чтобы включить захват клавиатуры, прежде чем использовать такие вещи, как Alt + Tab. Virtualbox действительно нуждается в способе сопоставления и отключения сочетаний клавиш внутри гостя.
— стек

1
Работает отлично! Я не понимаю, почему этот параметр не зависит от конкретной машины.
— Франк Дернонкур

Оказывается, это на самом деле довольно хорошее решение, если вы используете гостевую машину для запуска кода, который вы разрабатываете на хост-машине, даже код GUI. Если вы не максимизируете GUI на гостевой машине и оставляете термин / cmd для запуска кода открытым, вы можете навести / щелкнуть по окнам, которые хотите ввести, как обычно для окон хоста (щелчок для фокусировки) можно отключить в Windows!). Alt + Tab переключает между VirtualBox и окнами хоста, и сочетания клавиш для переключения рабочих областей, вероятно, будут работать (у меня настроены как Super + стрелка и Super + номер, поэтому я не могу проверить Ctrl + Alt + стрелка).
— Майкл Шепер

5

Нажатие клавиши хоста (правая клавиша Ctrl) один раз появится, чтобы позволить следующей комбинации клавиш перейти на хост-компьютер.

Для меня это означает, что я могу нажать правую-Ctrl, отпустить, а затем нажать Windows + левую-Ctrl + влево для переключения рабочих столов


1
Это на самом деле не отключает захват клавиатуры для некоторых комбинаций клавиш, этот ответ будет лучше в качестве комментария.
— Не рутируйте здесь, плз ...

Подтверждено, что работает для противоположной комбинации: хост Windows 7 + гостевая Ubuntu 16.04.
— jpaugh

1

Я справился с этим очень эффективно, установив ключ хоста в качестве Winключа! В Windows 10 вам нужно Ctrl+ Win+ Arrowsдля переключения рабочих столов, а установка Winв качестве ключа хоста позволяет вам выполнять комбинацию непосредственно в хост-ОС, но при этом захватывать на ВМ другую комбинацию, такую ​​как Ctrl+ Cи т. Д.


0

В Windows 10 Pro 1803 (с виртуальной машиной Windows 7 в VirtualBox) нажатие клавиши хоста, а затем любого сочетания клавиш «хост» также работает для меня. Это позволяет мне минимальное количество действий только с клавиатуры для переключения рабочих столов, начиная с «захваченной» виртуальной машины, согласно предложению Кертиса.

Похоже, что если в ключе хоста есть клавиша Windows, это вызывает всплывающее меню «Пуск» Windows 7 перед переходом в режим клавиатуры «хоста», поэтому я изменил свой ключ хоста на Ctrl-Shift-Alt, который удобен для работы одной рукой. затем я могу использовать две комбинации клавиш для переключения между рабочими столами.


0

У меня была такая же проблема, и я мог решить ее только

  • сначала отключив Auto Capture Keyboard(который был включен по умолчанию), в File / Preferences / Inputменю VirtualBox
  • перезагрузка виртуальной машины
  • снова включить Auto Capture Keyboard
  • перезагрузка виртуальной машины

Я предполагаю, что в VirtualBox есть ошибка, которая игнорирует начальные настройки.

Примечание: я перезагрузил компьютер после отключения опции, когда я впервые попытался решить проблему, думая, что это было решением (так как это часто предлагается). Это не сработало, поэтому я включил его снова, и это было хорошо. Так что я не уверен, что этот первый шаг перезагрузки совершенно необходим.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.