如何使用autoit将键盘和鼠标命令从主机发送到VMware?

如何使用autoit将键盘和鼠标命令从主机发送到VMware?,vmware,autoit,Vmware,Autoit,如何使用autoit将键盘和鼠标命令从主机发送到VMware 还有别的解决办法吗 谢谢, Wa您需要打开vmware窗口,然后使用所需的任何和/或功能 编辑: 在WinActivate()之后,在尝试Send()或MouseMove()/MouseClick()向虚拟机发送任何其他内容之前,先发送(^g”)以获得虚拟机的GUI控制。自动化VMware的主要问题是从来宾系统中运行的软件获取反馈。例如,您不能通过在主机上执行WinWait()来等待来宾中的窗口 解决这一问题的一种方法是实现主/从依赖

如何使用autoit将键盘和鼠标命令从主机发送到VMware

还有别的解决办法吗

谢谢, Wa

您需要打开vmware窗口,然后使用所需的任何和/或功能

编辑:


WinActivate()
之后,在尝试
Send()
MouseMove()
/
MouseClick()
向虚拟机发送任何其他内容之前,先发送(^g”)以获得虚拟机的GUI控制。

自动化VMware的主要问题是从来宾系统中运行的软件获取反馈。例如,您不能通过在主机上执行WinWait()来等待来宾中的窗口

解决这一问题的一种方法是实现主/从依赖关系,其中主机操作系统上的AutoIt控制器脚本发出命令(通过VMware共享文件夹、网络共享等),而来宾操作系统上的AutoIt executor脚本使事情发生并报告(同样,通过共享)

示例(简化,但基于我现在使用的内容):


另一方面,如果您只需要自动化VMware客户端本身(例如,自动化虚拟机的创建),您可以使用基本的AutoIt方法,AutoIt论坛上有很多例子。

只需确保VM处于活动状态,并使用Send(…)或Mouse(…)像我的另一个命令一样,你假设虚拟机操作系统是Windows。@Mechaflash,是的。如果来宾是Linux或Mac OS,只需发送相关的击键即可。如果您指的是主机,则此问题只能使用Windows。至于不是Windows的客户机,有一些特定于其他操作系统的自动化方法。
WinWait("VMware")
WinActivate("VMware")
Send("{CTRLDOWN}g{CTRLUP}") ; Ctrl+G, give focus to the guest OS
Send("{LWINDOWN}r{LWINUP}") ; Win+R, brings up command entry dialog on the guest
Send("...the actual command with job ID as the argument")
; this last command given to host is actually a compiled AU3 script 
; that does something useful and reports back over a network share
Do
    Sleep(15000) ; now wait for the script on the guest to report back
Until GuestHasResponded()

Func GuestHasResponded()
   ; ... check if the guest has created a flag file on the network share
EndFunc