20.26. 将密钥组合发送到指定的虚拟客户机虚拟机
通过 virsh send-key domain
--codeset
-- 保持time
keycode 命令,您可以将序列作为密钥代码发送到特定的 guest 虚拟机。每个 键码 可以是数字值,也可以是以下对应代码集的符号链接名称。
如果指定了
-- keeptime
,则会为每个按键数以毫秒为单位进行。借助 --codeset
,您可以指定代码集,默认为 Linux
,但允许以下选项:
Linux
- 选择这个选项可使符号链接名称与对应的 Linux 键恒定宏名称匹配,而数字值则是由 Linux 通用输入事件子系统提供的。XT
- 这将发送 XT 键盘控制器定义的值。不提供符号链接名称atset1
- 数字值是指 AT 键盘控制器 set1(兼容 XT 兼容集)定义的。与 atset1 的扩展密钥码可能与 XT codeset 中的扩展密钥码不同。不提供符号名。atset2
- 数字值由 AT 键盘控制器定义,设置 2。不提供符号名。atset3
- 数字值由 AT 键盘控制器定义,设置 3(兼容PS/2)。不提供符号名。os_x
- 数字值由 OS-X 键盘输入子系统定义。符号链接名称与相应的 OS-X 密钥恒定宏名匹配。xt_kbd
- 数字值由 Linux KBD 设备定义。这些是原始 XT 代码集的一个变体,但通常使用不同的编码器。不提供符号名。win32
- 数字值由 Win32 键盘输入子系统定义。符号链接名称与对应的 Win32 密钥恒定宏名匹配。USB
- 用于键盘输入的 USB HID 规范定义数字值。不提供符号名。rfb
- 用于发送原始密钥码的 RFB 扩展定义的值。这些是 XT 代码集的一个变体,但扩展密钥码的低位是第二个位,而不是第一个字节的高位。不提供符号名。
例 20.53. 如何将按键组合发送到客户机虚拟机
以下示例将 Linux 编码中的 Left Ctrl、LeftAlt 和 Delete 发送到 guest1 虚拟机,并将它们容纳 1 秒。这些密钥都同时发送,可能由客户机以随机顺序接收:
# virsh send-key guest1 --codeset Linux
--holdtime 1000
KEY_LEFTCTRL KEY_LEFTALT KEY_DELETE
注意
如果指定了多个 密钥码,它们都同时发送到客户机虚拟机,因此可能以随机顺序接收。如果需要不同的密钥码,则必须多次运行 virsh send-key 命令,以便获得要发送序列的顺序。