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

时间:2012-05-13 04:36:12

标签: vmware autoit

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

是否有其他解决方法?

谢谢, 娲

2 个答案:

答案 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论坛上有很多示例。