我希望能够在主机 Windows 计算机上的 WSL2 中运行一个脚本,该脚本向 Hyper-V VM 发送信号,该信号将被解释为鼠标单击和键盘按下。我已经在装有 KVM VM 的 Linux 计算机上完成了此操作,是否可以在装有 Hyper-V VM 的 Windows 计算机上执行相同操作?
答案1
首先,没有Linux你可以在 WSL 中运行的软件,它可以将输入事件发送到视窗应用程序(例如 Hyper-V)。例如,xdotool
在 WSL 中只能与 WSL 启动的 GUI 应用程序交互。
其次,通过我的快速谷歌搜索(以及我自己的快速测试),我发现普通的“SendKeys”类型的行为在从主机 Windows 到客户 Hyper-VM VM 时不起作用。
不过,微软确实为此在 Hyper-V 中提供了特殊的钩子,这些钩子能可以通过 Windows Interop 从 WSL 使用。但是,在我的测试中,其中一些有点具有挑战性。
另外,任何一个Linux 或 Windows VM 的一个问题是,以编程方式从主机向客户 VM 发送按键/鼠标点击可能相当不确定。换句话说,如果您想在客户 VM 中单击“确定”按钮,主机如何知道该按钮的 XY 坐标?按键并不那么糟糕,因为您可以预料根据先前的击键来判断客人的“正常行为”。例如: