JP2015187786A - 仮想マシン管理プログラム、及び仮想マシン管理装置 - Google Patents
仮想マシン管理プログラム、及び仮想マシン管理装置 Download PDFInfo
- Publication number
- JP2015187786A JP2015187786A JP2014064784A JP2014064784A JP2015187786A JP 2015187786 A JP2015187786 A JP 2015187786A JP 2014064784 A JP2014064784 A JP 2014064784A JP 2014064784 A JP2014064784 A JP 2014064784A JP 2015187786 A JP2015187786 A JP 2015187786A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- area
- label
- virtual
- automatic operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】複数の仮想マシン上でそれぞれアプリケーションを並行して動作させるための自動操作を、ユーザによる事前の作業を必要とすることなく、確実にすることを可能にする。【解決手段】実施形態によれば、仮想マシン管理プログラムは、コンピュータを、少なくとも1つの動作中の仮想マシンに対応するオブジェクトを第1領域に表示する第1表示手段と、前記第1領域に表示されたオブジェクトに対する操作があった場合に、前記オブジェクトに対応する仮想マシンのウィンドウを前記第1領域と重複しない第2領域に表示する第2表示手段として機能させる。【選択図】図1
Description
本発明の実施形態は、物理マシン上で動作する仮想マシンを管理する仮想マシン管理プログラム、及び仮想マシン管理装置に関する。
従来、アプリケーションに対する操作を自動化するソフトウェアが知られている。例えば、物理マシン上で動作する仮想マシンのユーザインタフェース(UI)に対して自動操作するUI自動操作ソフトウェアがある。UI自動操作ソフトウェアは、例えば、ディスプレイに表示される画像のスクリーンショットからオブジェクト(アイコン、ボタン等)を切り出し、クエリとして画像検索を行い、操作対象とするオブジェクトの位置を取得する機能、マウスやキーボード等の周辺機器によりオブジェクトに対する自動操作をする機能を実現することができる。
Ben Lau"Instant Sikuli Test Automation"米国、Packt Publishing、2013年7月26日
仮想マシンを評価する場合、1つの物理マシン上で複数の異なる仮想マシンを実行させて、各仮想マシンで同じアプリケーションを並行に実行させて比較したいという要望がある。この際、UI自動操作ソフトウェアを用いて、複数のアプリケーションに対して自動操作をすることにより、効率的な評価作業が可能となる。
しかし、UI自動操作ソフトウェアと仮想マシンは、共通するOS(Operating System)上で個別に動作している。このため、UI自動操作ソフトウェアは、何れの仮想マシン上で動作するアプリケーションのウィンドウがディスプレイに表示されているか認識せずに、スクリーンショットからオブジェクトを画像検索する。
通常、複数の仮想マシンでそれぞれアプリケーションを動作させた場合、各仮想マシンに対応するウィンドウが重複して表示されてしまい、ウィンドウ中のオブジェクトが隠れてしまったり、各仮想マシンに対応する複数のウィンドウに同じオブジェクトがあったりする場合がある。オブジェクトが隠れている場合、UI自動操作ソフトウェアは、このオブジェクトを検索することができない。また、同じオブジェクトが複数ある場合には、UI自動操作ソフトウェアは、何れか一方のオブジェクトを検索して、アクティブでないウィンドウから検索する可能性もある。
このため、UI自動操作ソフトウェアだけでは正しく自動操作させることができず、事前にユーザの作業が必要となってしまう。例えば、ユーザは、UI自動操作ソフトウェアによる画像(オブジェクト)検索の選択範囲を指定するスクリプトを組み込んだり、複数の仮想マシンのそれぞれに対応する複数のウィンドウを重複なく配置するといった作業を別途行う必要がある。従って、UI自動操作ソフトウェアを利用して自動操作をするとしても作業効率を上げることができなかった。
本発明が解決しようとする課題は、複数の仮想マシン上でそれぞれアプリケーションを並行して動作させるための自動操作を、ユーザによる事前の作業を必要とすることなく、確実にすることが可能な仮想マシン管理プログラム、及び仮想マシン管理装置を提供することである。
実施形態によれば、仮想マシン管理プログラムは、コンピュータを、少なくとも1つの動作中の仮想マシンに対応するオブジェクトを第1領域に表示する第1表示手段と、前記第1領域に表示されたオブジェクトに対する操作があった場合に、前記オブジェクトに対応する仮想マシンのウィンドウを前記第1領域と重複しない第2領域に表示する第2表示手段として機能させる。
以下、実施の形態について、図面を参照して説明する。
図1は、本実施形態におけるホストマシン100のハードウェア構成を示すブロック図である。図1に示すホストマシン100は、CPU101がシステムバス102を介して、操作部103、表示部104、I/F(インタフェース)105、RAM106、補助記憶装置107と接続される。ホストマシン100は、例えばパーソナルコンピュータ(PC)によって実現することができる。
図1は、本実施形態におけるホストマシン100のハードウェア構成を示すブロック図である。図1に示すホストマシン100は、CPU101がシステムバス102を介して、操作部103、表示部104、I/F(インタフェース)105、RAM106、補助記憶装置107と接続される。ホストマシン100は、例えばパーソナルコンピュータ(PC)によって実現することができる。
CPU101は、補助記憶装置107からRAM106に読み出された各種プログラム(ソフトウェア)を実行することにより各種の機能を実現する。CPU101により実行されるプログラム(ソフトウェア)の詳細については図2に示す。
操作部103は、USB(Universal Serial Bus)インタフェース等を介して接続されたマウスやキーボードなどのユーザにより操作される入力デバイスを含む。
表示部104は、DVI(Digital Visual Interface)やVGA(Video Graphics Array)インタフェースで接続されたディスプレイを含む。表示部104は、CPU101により実行されるプログラムの処理に応じた画面をディスプレイに表示する。
RAM106は、CPU101により実行されるりプログラムやデータを一時記憶するワークエリアとして使用される。
補助記憶装置107は、OS(Operating System)やアプリケーションなどの各種プログラム(ソフトウェア)やプログラムの実行に必要なデータなどを、不揮発性の記憶媒体において記憶する。
図2は、本実施形態におけるソフトウェア(プログラム)構成の一例を示す図である。
ホストマシン100(CPU101)は、OS(オペレーティングシステム)200(ホストOS)上で各種プログラム(ソフトウェア)を動作させる。本実施形態において、OS200上で動作するプログラムには、例えば仮想化ソフトウェア201、UI自動操作ソフトウェア202、仮想マシン管理プログラム203がある。
ホストマシン100(CPU101)は、OS(オペレーティングシステム)200(ホストOS)上で各種プログラム(ソフトウェア)を動作させる。本実施形態において、OS200上で動作するプログラムには、例えば仮想化ソフトウェア201、UI自動操作ソフトウェア202、仮想マシン管理プログラム203がある。
仮想化ソフトウェア201は、1台の物理マシン(ホストマシン100)で複数のオペレーティングシステムを同時に実行できるようにするソフトウェアである。仮想化ソフトウェア201上では、複数の仮想マシン204(204−1,204−2,204−3,…)を動作させることができる。仮想マシン204−1,204−2,204−3,…は、例えばそれぞれのOS(ゲストOS)上で、アプリケーションを実行させることができる。ホストマシン100(CPU101)は、複数の仮想マシン204−1,204−2,204−3,…において、アプリケーションを並行して動作させることができる。
UI自動操作ソフトウェア202は、ホストマシン100(物理マシン)上で動作する仮想マシン204−1,204−2,204−3,…のユーザインタフェース(UI)に対して自動操作するソフトウェアである。UI自動操作ソフトウェア202は、例えば、表示部104に表示される画像のスクリーンショットから操作対象となるオブジェクト(アイコン、ボタン等)を切り出し、クエリとして画像検索を行い、操作対象とするオブジェクトの位置を取得する機能、操作部103(マウスやキーボード等の周辺機器)によりオブジェクトに対する自動操作をする機能を有する。
仮想マシン管理プログラム203は、複数の仮想マシン上でそれぞれアプリケーションを並行して動作させた場合でも、UI自動操作ソフトウェア202による自動操作を確実にすることができるようにするための機能を提供する。仮想マシン管理プログラム203は、例えば図3に示すように、少なくとも1つの動作中の仮想マシンに対応するオブジェクトを表示するためのラベル領域301(第1領域)を表示する機能(第1表示機能)と、ラベル領域301に表示されたオブジェクトに対する操作があった場合に、オブジェクトに対応する仮想マシンのウィンドウを仮想マシン領域300(第2領域)に表示する機能(第2表示機能)とを有する。
図3は、本実施形態における仮想マシン管理プログラム203により画面に設定される仮想マシン領域300とラベル領域301の構成例を示す図である。
仮想マシン管理プログラム203は、図3に示すように、仮想マシン領域300とラベル領域301とを表示部104の画面中で重複しない位置に設定する。仮想マシン管理プログラム203は、仮想マシン204がホストマシン100において動作する場合、この仮想マシン204による処理に応じた画面を表示するための仮想マシンウィンドウ302を仮想マシン領域300内に配置して表示させる。
仮想マシン管理プログラム203は、図3に示すように、仮想マシン領域300とラベル領域301とを表示部104の画面中で重複しない位置に設定する。仮想マシン管理プログラム203は、仮想マシン204がホストマシン100において動作する場合、この仮想マシン204による処理に応じた画面を表示するための仮想マシンウィンドウ302を仮想マシン領域300内に配置して表示させる。
仮想マシンウィンドウ302には、例えば仮想マシン204上で実行されるアプリケーションの処理に応じて、入力操作を受け付けるためのユーザインタフェース(UI)303が表示される。UI303は、操作部103の例えばマウスによるクリック操作によって処理の開始を指示することができるボタン304を含んでいる。図3に示すUI303には、例えば複数のボタンA、ボタンB、ボタンCが含まれていることを示している。なお、UI303に対する操作は、マウスによるクリック操作だけでなく、キーボード等の他の入力デバイスを使用するものであっても良い。また、UI303に含まれるボタン304は、UI自動操作ソフトウェア202による自動操作の対象となる。
また、仮想マシン管理プログラム203は、仮想マシン204がホストマシン100において動作する場合、この仮想マシン204に対応するラベル305を生成し、ラベル領域301上に配置する。仮想マシン管理プログラム203は、ホストマシン100において複数の仮想マシン204が動作する場合には、複数の仮想マシン204のそれぞれに対応する複数のラベル305を生成してラベル領域301に表示させる。ラベル305は、入力操作(例えばクリック)されると、対応する仮想マシンウィンドウ302をアクティブ化させるために使用されるオブジェクトである。
図3では、3つの仮想マシン204−1,204−2,204−3が動作しており、それぞれに対応する3つのラベル305a,305b,305cがラベル領域301に表示された状態を示している。
図4は、本実施形態におけるラベル領域301に表示された複数のラベル305a,305b,305cの詳細を示す図である。ラベル領域301には、例えば予め決められたラベル間隔500に基づいて、等間隔で複数のラベル305a,305b,305cが配置される。なお、ラベル305a,305b,305cには、各ラベルを一意に決定できるように、図4に示すように、プロセスID等を表示させても良い。
ラベル305が入力操作(例えばクリック)された場合、仮想マシン管理プログラム203は、操作されたラベル305に対応する仮想マシンウィンドウ302をアクティブ化して、この仮想マシンウィンドウ302のみを仮想マシン領域300において表示させる。従って、例えば、複数の仮想マシン204−1,204−2,204−3を並行に動作させたとしても、ラベル領域301において操作されたラベルに対応する仮想マシン204の仮想マシンウィンドウ302のみが表示部104の画面中に表示されることになる。
すなわち、複数の仮想マシン204−1,204−2,204−3において同じアプリケーションを実行させることにより、それぞれの仮想マシンウィンドウ302に同じボタン304が表示される場合であっても、アクティブな仮想マシンウィンドウ302のボタン304のみが表示部104において表示される。このため、UI自動操作ソフトウェア202は、表示部104に表示される画像のスクリーンショットから操作対象となるボタン304を確実に検索して、このボタン304に対する自動操作をすることができる。
図5は、本実施形態における仮想マシン管理プログラム203により動作中の仮想マシンを管理するために作成される仮想マシン管理リスト400の一例を示す図である。仮想マシン管理リスト400は、例えば補助記憶装置107に記憶される。
仮想マシン管理リスト400は、動作中の仮想マシン204を示すプロセスIDとウィンドウの識別子であるウィンドウハンドルにより構成される。ここで、ウィンドウハンドルは、例えば、Windows(登録商標)OSが持つ「HWND」のようなウィンドウ毎に付番される変数を用いることができる。仮想マシン管理リスト400には、仮想マシン204の起動時に、対応するプロセスIDとウィンドウハンドルとが登録され、仮想マシン204の動作が終了すると削除される。詳細については後述する(図7参照)。
仮想マシン管理リスト400は、動作中の仮想マシン204を示すプロセスIDとウィンドウの識別子であるウィンドウハンドルにより構成される。ここで、ウィンドウハンドルは、例えば、Windows(登録商標)OSが持つ「HWND」のようなウィンドウ毎に付番される変数を用いることができる。仮想マシン管理リスト400には、仮想マシン204の起動時に、対応するプロセスIDとウィンドウハンドルとが登録され、仮想マシン204の動作が終了すると削除される。詳細については後述する(図7参照)。
図6は、本実施形態のUI自動操作ソフトウェア202による動作を定義するスクリプトの一例を示す図である。
図6に示すスクリプトは、表示部104に表示された画面中のオブジェクト600(ボタンAを示す)を検索し、このオブジェクト600の位置までカーソルを移動させてクリックする処理を自動で行うことを示している。
図6に示すスクリプトは、表示部104に表示された画面中のオブジェクト600(ボタンAを示す)を検索し、このオブジェクト600の位置までカーソルを移動させてクリックする処理を自動で行うことを示している。
ユーザは、スクリプトを作成する際に、仮想マシン領域300に表示された仮想マシンウィンドウ302からオブジェクト(アイコン)などを選択することにより、スクリプトにオブジェクトを取り込める。すなわち、図3に示すボタン304(ボタンA)を選択することでボタンAの画像を取り込んで、図6に示すように、スクリプトに埋め込むことができる。
複数の仮想マシン204−1,204−2,204−3で同じアプリケーションを並行に実行して、UI自動操作ソフトウェア202により同じ自動操作をする場合(例えばボタンAをクリック)、1つの仮想マシン204の仮想マシンウィンドウ302でボタンAを選択して、1つのスクリプトを記述するだけで、他の仮想マシン204の仮想マシンウィンドウ302に対する自動操作のためのスクリプトとして利用することができる。すなわち、スクリプト記述の作業を簡単にすることができる。
また、スクリプトには、ラベル領域301に配置されたラベル305をクリックして、ラベル305に対応する仮想マシン204の仮想マシンウィンドウ302をアクティブ化させる内容を追加する。すなわち、ラベル領域301に配置された先頭のラベル305をラベルの画像をもとに検索して、このラベルの位置にカーソルを移動させてクリック操作する自動操作をさせる。さらに、図6のスクリプトが示す自動操作をする毎に、ラベル領域301に表示された次のラベル305へカーソルを移動させてクリック操作する自動操作を設定しておくことで、次の仮想マシン204に対応する仮想マシンウィンドウ302をアクティブにして、同様の自動操作を繰り返して実行できるようにする。
ラベル領域301に配置される複数のラベル305a,305b,305cは、図4に示すように、予め決められたラベル間隔500に基づいて等間隔で配置されているため、この配置に基づいてカーソルを移動させる(例えば、カーソルをラベル間隔500分だけ右方向に移動させる)スクリプトによって自動化することができる。
次に、本実施形態におけるホストマシン100の動作について説明する。
図7は、本実施形態における仮想マシン管理プログラム203の処理を示すフローチャートである。
CPU101は、仮想マシン管理プログラム203に従い、補助記憶装置107に仮想マシン管理リスト400を作成する(ステップS100)。その後、CPU101は、仮想マシン領域300、ラベル領域301、及びラベル間隔500を示す各データを定数としてRAM106に記憶する(ステップS101)。この時、CPU101は、仮想マシン領域300、ラベル領域301を示すデータとして、領域の左上部と右下部の頂点の座標を数値として記憶しても良い。また、仮想マシン領域300、ラベル領域301の位置及び範囲、ラベル間隔は、ユーザが設定しても良く、表示部104の画面サイズに応じて仮想マシンプログラム203が自動で設定しても良い。ただし、仮想マシン領域300とラベル領域301とは重ならないように配置されるものとする。
図7は、本実施形態における仮想マシン管理プログラム203の処理を示すフローチャートである。
CPU101は、仮想マシン管理プログラム203に従い、補助記憶装置107に仮想マシン管理リスト400を作成する(ステップS100)。その後、CPU101は、仮想マシン領域300、ラベル領域301、及びラベル間隔500を示す各データを定数としてRAM106に記憶する(ステップS101)。この時、CPU101は、仮想マシン領域300、ラベル領域301を示すデータとして、領域の左上部と右下部の頂点の座標を数値として記憶しても良い。また、仮想マシン領域300、ラベル領域301の位置及び範囲、ラベル間隔は、ユーザが設定しても良く、表示部104の画面サイズに応じて仮想マシンプログラム203が自動で設定しても良い。ただし、仮想マシン領域300とラベル領域301とは重ならないように配置されるものとする。
ユーザによってプログラムの終了が選択された場合(ステップS102)、CPU101は、表示部104のラベル領域302に配置されたラベル305を全て削除し(ステップS103)、作成した仮想マシン管理リスト400を補助記憶装置107から削除して(ステップS104)、プログラムを終了する。
一方、プログラムの終了が選択されない間は、CPU101は、ホストマシン100で動作しているプロセスのプロセスIDとプロセス名を取得する(ステップS105)。ここで、CPU101は、取得したプロセスIDとプロセス名が、新規に起動された仮想マシン204のものであるかを判別する。すなわち、CPU101は、取得したプロセスのプロセス名が仮想マシン204のものであり、プロセスIDが仮想マシン管理リスト400に含まれていない場合、新規に仮想マシン204がプロセスを起動したものとする。新規に仮想マシン204が起動されたと判別された場合(ステップS106、Yes)、CPU101は、プロセスIDよりウィンドウハンドルを取得し、仮想マシン管理リスト400に該当プロセスIDと、ウィンドウハンドルを登録する(ステップS107)。
また、CPU101は、新規に起動された仮想マシン204の仮想マシンウィンドウ302を仮想マシン領域300に移動して表示させる(ステップS108)。この時、仮想マシンウィンドウ302のサイズは、仮想マシン領域300に合わせて変更できるようにしても良い。仮想マシンウィンドウ302の移動及びサイズの変更は、OSのAPI(Application Programming Interface)の「Bool MoveWindow()」のような関数を使用することができる。
次に、CPU101は、仮想マシン管理リスト400にプロセスIDとプロセス名とが登録された、新規に起動された仮想マシン204と対応づけられたラベル305を生成し、ラベル領域301の所定の位置に配置する(ステップS109)。
その後、CPU101は、プログラムの終了を判定する処理(ステップS102)に戻る。新規に仮想マシン204が起動していない場合(ステップS106、No)、CPU101は、動作中の仮想マシン204が終了しているかを判定する(ステップS110)。
このとき、仮想マシン管理リスト400に登録されているプロセスIDが、取得した動作中プロセスのプロセスIDに含まれていない場合、CPU101は、仮想マシン204が終了したものと判別する。仮想マシン204が終了していた場合(ステップS110、Yes)、CPU101は、該当仮想マシン204に対応するラベル305をラベル領域301より削除し、ラベル領域301を整列させ(ステップS111)、仮想マシン管理リスト400より該当仮想マシン204に対応するプロセスIDとプロセス名とを削除する(ステップS112)。その後、CPU101は、プログラムの終了を判定する処理(ステップS102)に戻る。
なお、仮想マシン204が終了していなかった場合(ステップS110、No)、CPU101は、プログラムの終了を判定する処理(ステップS102)に戻る。
このようにして、本実施形態における仮想マシン管理プログラム203によって、ユーザが起動した仮想マシン204に対して、仮想マシンウィンドウ302を仮想マシン領域300に移動させ、仮想マシン204と対応するラベル305をラベル領域301に配置することができる。複数の仮想マシン204が起動された場合には、新規に起動される毎にラベル305がラベル領域301に追加される。仮想マシン領域300では、アクティブな1つの仮想マシン204に対応する仮想マシンウィンドウ302のみが表示される。こうして、仮想マシン領域300とラベル領域301を設けることで、後述するUI自動操作ソフトウェア202の処理によって、複数の仮想マシン204の内、特定の仮想マシン204のUI303を操作することができるようになる。
次に、UI自動操作ソフトウェア202による動作について説明する。図8は、本実施形態におけるUI自動操作ソフトウェア202の処理を示すフローチャートである。
CPU101は、UI自動操作ソフトウェア202を起動すると、変数「CNT」、「MAX_VM」をそれぞれRAM106に設定し、「CNT」に「0」、「MAX_VM」に起動している仮想マシン204の数を代入する(ステップS200)。ここで、「MAX_VM」の値は、例えば仮想マシン204を起動したユーザによって予め設定されるものとする。
CPU101は、UI自動操作ソフトウェア202を起動すると、変数「CNT」、「MAX_VM」をそれぞれRAM106に設定し、「CNT」に「0」、「MAX_VM」に起動している仮想マシン204の数を代入する(ステップS200)。ここで、「MAX_VM」の値は、例えば仮想マシン204を起動したユーザによって予め設定されるものとする。
「MAX_VM」の値が0である場合には、CPU101は、UI自動操作ソフトウェア202による処理を終了する(ステップS201、Yes)。
一方、「MAX_VM」の値が1以上である場合、CPU101は、ラベル領域301の先頭のラベル305の画像をもとに、画像処理によって先頭のラベル305の位置を検索し、この先頭のラベル305の位置にマウスカーソルを移動させる(ステップS202)。
このとき、画像処理によって先頭のラベル305を検索するのではなく、UI自動操作ソフトウェア202の動作を定義するスクリプトにおいて、「click(“先頭ラベルの座標”)」のように先頭のラベル305の位置を座標指定しておくことによって、この指定された座標をもとにカーソルを移動させるようにしても良い。この場合、“先頭ラベルの座標”は、ラベル領域301内の相対的な位置を示すものとして、ラベル領域301の位置(例えば領域の左上部と右下部の頂点の座標)をもとにラベル305の位置を特定することができる。
カーソルを先頭のラベル305に移動させると、CPU101は、マウスをクリックする自動操作を実行する。ラベル305がクリックされると、仮想マシン管理プログラム203は、クリックされたラベル305に該当する仮想マシンウィンドウ302をアクティブ化して、仮想マシン領域300において表示させる(ステップS203)。ここで、仮想マシンウィンドウ302のアクティブ化は、該当仮想マシンウィンドウ302のウィンドウハンドルを仮想マシン管理リスト400より取得し、例えばAPIの「Bool SetForegroundWindow()」のような関数を使用することで行うことができる。
その後、CPU101は、図6に示すスクリプトに基づいて、仮想マシン204のUI303中のボタン304(ボタンA)をクリックする自動操作を行う(ステップS204)。これにより、CPU101は、仮想マシン204によりUI303の(ボタンAに応じた)処理を実行させることができる。
CPU101は、CNT」に「CNT+1」の値を代入し(ステップS205)、変数「MAX_VM」と比較する(ステップS206)。この時、「CNT」と「MAX_VM」の値が等しい場合(ステップS206、Yes)、全ての仮想マシン204に対する処理を実行したものとし、プログラムを終了する。
「CNT」と「MAX_VM」の値が異なる場合(ステップS206、No)、CPU101は、スクリプトに従い、カーソルを次のラベル305に移動させる(ステップS207)。例えば、先頭のラベル305よりラベル間隔500×「CNT」分だけ右方向に移動するようにカーソルを移動させる。
カーソルを次のラベル305に移動させると、クリックする自動操作をして、このラベル305に対応する仮想マシンウィンドウ302をアクティブ化させる(ステップS203)。以下、前述と同様にして、仮想マシン領域300に表示されたアクティブ化された仮想マシンウィンドウ302に対して、UI303上のボタン304(ボタンA)をクリックする自動操作を実行する。
例えば、3つの仮想マシン204−1,204−2,204−3が並行に動作している場合には、ラベル領域301には図3に示すように、3つのラベル305a,305b,305cが表示されている。CPU101は、UI自動操作ソフトウェア202を実行することにより、ラベル領域301内の先頭のラベル305aをクリックして仮想マシン204−1に対応する仮想マシンウィンドウ302をアクティブ化して、ボタンA304を仮想マシン領域300から検索してマウスカーソルを移動させてクリックする自動操作をする。その後、ラベル領域301内の次のラベル305bにカーソルを移動させてクリックして、ラベル305bに対応する次の仮想マシン204−2の仮想マシンウィンドウ302をアクティブにして仮想マシン領域300に表示させる。同様にして、ボタンAを仮想マシン領域300から検索してマウスカーソルを移動させてクリックする自動操作をする。さらに、ラベル領域301内の次のラベル305cにカーソルを移動させてクリックして、ラベル305cに対応する次の仮想マシン204−3の仮想マシンウィンドウ302をアクティブにして仮想マシン領域300に表示させる。同様にして、ボタンAを仮想マシン領域300から検索してマウスカーソルを移動させてクリックする自動操作をする。
このようにして、複数の仮想マシン204−1,204−2,204−3を並行に動作させても、仮想マシン領域300でアクティブな仮想マシンウィンドウ302のみを表示するように、仮想マシン管理プログラム203により複数の仮想マシン204のウィンドウの表示を制御しているので、UI自動操作ソフトウェア202は、正しく画像検索によりボタンAを検索して、クリックする自動操作を実現できる。従って、事前にユーザが仮想マシン204−1,204−2,204−3のそれぞれに対応するウィンドウが重複しないように調整するといった作業をすることなく、UI自動操作ソフトウェア202による自動操作を確実にすることが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…ホストマシン、101…CPU、103…操作部、104…表示部、106…RAM、107…補助記憶装置、200…OS、201…仮想化ソフトウェア、202…UI自動操作ソフトウェア、203…仮想マシン管理プログラム、204−1,204−2,204−3…仮想マシン、301…ラベル領域、300…仮想マシン領域、305a,305b.305c…ラベル。
Claims (4)
- コンピュータを、
少なくとも1つの動作中の仮想マシンに対応するオブジェクトを第1領域に表示する第1表示手段と、
前記第1領域に表示されたオブジェクトに対する操作があった場合に、前記オブジェクトに対応する仮想マシンのウィンドウを前記第1領域と重複しない第2領域に表示する第2表示手段として機能させるための仮想マシン管理プログラム。 - さらに、前記第1表示手段を、複数の仮想マシンが動作する場合に、前記複数の仮想マシンのそれぞれに対応する複数のオブジェクトを前記第1領域に予め決められた配置で表示するように機能させるための請求項1記載の仮想マシン管理プログラム。
- さらに、前記第2表示手段を、複数の仮想マシンが動作する場合に、最後に操作があった前記オブジェクトに対応する仮想マシンのウィンドウのみを前記第2領域するように機能させるための請求項1記載の仮想マシン管理プログラム。
- 少なくとも1つの動作中の仮想マシンに対応するオブジェクトを第1領域に表示する第1表示手段と、
前記第1領域に表示されたオブジェクトに対する操作があった場合に、前記オブジェクトに対応する仮想マシンのウィンドウを前記第1領域と重複しない第2領域に表示する第2表示手段とを有する仮想マシン管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014064784A JP2015187786A (ja) | 2014-03-26 | 2014-03-26 | 仮想マシン管理プログラム、及び仮想マシン管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014064784A JP2015187786A (ja) | 2014-03-26 | 2014-03-26 | 仮想マシン管理プログラム、及び仮想マシン管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015187786A true JP2015187786A (ja) | 2015-10-29 |
Family
ID=54430000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014064784A Pending JP2015187786A (ja) | 2014-03-26 | 2014-03-26 | 仮想マシン管理プログラム、及び仮想マシン管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015187786A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2020031320A1 (ja) * | 2018-08-09 | 2021-01-07 | 三菱電機株式会社 | イベント送信装置およびイベント送信方法 |
-
2014
- 2014-03-26 JP JP2014064784A patent/JP2015187786A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2020031320A1 (ja) * | 2018-08-09 | 2021-01-07 | 三菱電機株式会社 | イベント送信装置およびイベント送信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101478514B1 (ko) | 원클릭 태깅 사용자 인터페이스 | |
US20140359538A1 (en) | Systems and methods for moving display objects based on user gestures | |
CN101000566A (zh) | 操作系统切换设备和操作系统切换方法 | |
EP3100151B1 (en) | Virtual mouse for a touch screen device | |
US20100257479A1 (en) | Graphical User Interface with Dynamic Toolbar Search Functionality | |
EP2972720B1 (en) | Windowing system and method for companion software products | |
US20120110514A1 (en) | Graphical User Interface for Managing Virtual Machines | |
US20120176308A1 (en) | Method for supporting multiple menus and interactive input system employing same | |
US10402067B2 (en) | Bi-directional search and sorting | |
KR20170073604A (ko) | 데이터 미리보기를 통한 작업 작성 기법 | |
TW201604719A (zh) | 智能設備的控制方法及裝置 | |
WO2017120077A1 (en) | Hierarchical positioned event dispatch | |
JP2011081778A (ja) | ディスプレイ非依存のコンピュータによるガイダンス方法および装置 | |
US20150309774A1 (en) | Method and device for changing objects in a human-machine interface device | |
US9811071B2 (en) | System construction support apparatus | |
JP6020383B2 (ja) | 表示・実行操作補助プログラム | |
JP2015187786A (ja) | 仮想マシン管理プログラム、及び仮想マシン管理装置 | |
US10430507B2 (en) | Report creating support apparatus, method for the same, and computer-readable storage medium | |
JP2016071623A (ja) | 電子機器、方法及びプログラム | |
WO2017201655A1 (zh) | 一种后台应用程序显示方法、装置、电子设备和计算机程序产品 | |
JP2015041327A (ja) | 自動操作システム及び方法、並びに自動操作プログラム | |
CN110286973B (zh) | 一种按键触发事件处理方法、智能终端及存储介质 | |
US11449463B2 (en) | Analysis database registration device, analysis data collection system, analysis system and analysis database registration method | |
Veuskens et al. | Rataplan: Resilient automation of user interface actions with multi-modal proxies | |
JP5883936B2 (ja) | プログラマブルコントローラシステム |