0

autoit を使用してホストから VMware にキーボードとマウスのコマンドを送信する方法は?

回避する他の方法はありますか?

ありがとう、ワ

4

2 に答える 2

0

VMware の自動化に関する主な問題は、ゲスト システムで実行されているソフトウェアからフィードバックを取得することです。たとえば、ホストで WinWait() を実行してゲストのウィンドウを待機することはできません。

これを回避する 1 つの方法は、ホスト OS 上の AutoIt コントローラー スクリプトが (VMware 共有フォルダー、ネットワーク共有などを介して) コマンドを発行し、ゲスト OS 上の 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 フォーラムにたくさんあります。

于 2012-05-18T21:36:44.307 に答える
0

WinActivate()vmware ウィンドウを開き、必要な関数Send()MouseMove()/関数を使用しますMouseClick()

編集:

の後WinActivate()、Send("^g") を実行して VM の GUI コントロールを取得してから、VM に対してその他の操作を試みSend()ます。MouseMove()MouseClick()

于 2012-05-14T16:10:18.953 に答える