如何使用autoit从主机向VMware发送键盘和鼠标命令?
是否有其他解决方法?
谢谢, 娲
答案 0 :(得分:0)
您需要WinActivate()
您的vmware窗口,然后使用您需要的任何Send()
和MouseMove()
/ MouseClick()
功能。
编辑:
在WinActivate()
之后,在尝试Send()
或MouseMove()
/ MouseClick()
之前执行发送(“^ g”)以获取对您的VM的GUI控制权VM。
答案 1 :(得分:0)
自动化VMware的主要问题是从来宾系统中运行的软件获得反馈。例如,您不能通过在主机上执行WinWait()等待来宾中的窗口。
解决这个问题的一种方法是实现主/从属关系,其中主机操作系统上的AutoIt控制器脚本发出命令(通过VMware共享文件夹,网络共享等),并且来宾操作系统上的AutoIt执行程序脚本使事情发生并报告(再次,分享)。
一个例子(简化,但基于我现在正在使用的内容):
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
另一方面,如果您只需要自动化VMware客户端本身(例如自动创建虚拟机),您可以使用基本的AutoIt方法,在AutoIt论坛上有很多示例。