C#

White を使って Windows の GUI操作して別のプログラムを立ち上げる…

More than 5 years have passed since last update.

Windows の GUI操作に White というライブラリを使う。

ググりやすい名前で、目的のものに達するのに時間がかかる。 site: とか付けて探すことが多い。

http://teststack.azurewebsites.net/white/index.html

https://github.com/TestStack/White



http://white.codeplex.com/

nuget で White を入れて参照して次のようなのを使っている。

サンプルとして、スタートメニューからcmd.exeを立ち上げてなんかコマンドを入力して実行するソース(C#)を載せる。

これは Jenkins のWindowsバッチから vmrun を使って VMware Player を立ち上げると、そのJOBが終ると同時にVMware Playerも死ぬので、こうやってムリやり vmrun している。

タスクバー隠すようにしている場合は、マウスカーソルを一番下とかに一度持っていって Sleepを入れる…。

var desktop = Desktop.Instance;

var startButton = desktop.Get(SearchCriteria.ByText("スタート"));
startButton.Click();
var startMenu = desktop.Get(SearchCriteria.ByText("スタート メニュー"));
var run = startMenu.Get(SearchCriteria.ByText("ファイル名を指定して実行..."));
run.Click();
var ws = desktop.Windows();
var w = ws.Find(x => x.Name == "ファイル名を指定して実行");
Thread.Sleep(1000);
var edit = w.Get(SearchCriteria.ByText("名前(O):").AndControlType(ControlType.Edit));
edit.Enter("cmd.exe");
w.Get(SearchCriteria.ByText("OK")).Click();
Thread.Sleep(1000);
var keyboard = Keyboard.Instance;
keyboard.Enter("echo Hello World!");

White は GUI色々動かせて便利。Silverlightの中も見れて動かせる。

ところでESXi 使いたい。