[WinActor]選択できないコントロールです。

Win32モードのイベント自動記録アクションが、なかなか曲者である。

対象アプリケーション選択してイベントモードで記録開始してもフロー作られないし、自分でライブラリからコントロール選択作ろうとしてみても対象コントロール指定でこのエラーがでてしまったりする。

対象ソフトウェアの相性が良ければすんなり自動保存もライブラリからの生成も問題なくいったりするんだけど。。。

 

基準が・・・よーわからんから検証開始。

とりあえず、Visual Studio 使って適当なフォームアプリを作ってみた。

検証資材は、こちらから。

・FormApp_test.exe

・WPF_frm_test.exe

(めんどくさくて、署名とか何も付けてないので不明な発行元の警告がでます。)

 

1.Windows フォーム アプリケーションで作ったフォーム

『FormApp_test.exe』の方です。

いろいろ操作の実験したくて細々とコントロールぶっこんで、Accessible関連のプロパティなんにもいじらずにコンパイルして作ったら見事にWinActorと相性の悪いパネルが作れた。

試しに自動記録やっても私の端末では何も記録されず。

ライブラリの自動記録アクションからノード作ってコントロール指定すると、一応コントロールの枠がマークアップされて選択できるんだけども、なぜか指定したのと違うコントロールが操作されたりする・・・。

あー・・・! こんな風になるアプリあるあるってやつになった。

 

2.WPFアプリケーションで作ったフォーム

『WPF_frm_test.exe』の方です。

こっちも、いろいろコントロールぶっこんでとりあえずコンパイルして立ち上げたら見事にWinActorと相性の悪いインターフェースに仕上がりました。

Window枠がマークアップされるだけで、一切コントロールの検出がWinActor側からできません。

こんな風になっちゃうソフトウェアもあるあるぅー・・・って感じです。

 

 

ボタンクリックの操作くらいなら画像識別でもいいんだけども、Sendkeysとか使い始めるとユーザ介入によって動作保証できなくなるシナリオになってしまうから何とか値の設定は直接制御したい・・・。

 

3.UIAutomation使って独自に作ってみた。

Win32ライブラリでは難しいものも多いみたいなので、UIAutomationライブラリ使って独自にUI制御できるプログラムを作ってみた。

資材はこちら。

まとめページの下の方、小ネタとしてコツコツ作ってます。

使い方とか、ちょっと優しくない部分もあるかもしれませんがJava以外は意外と制御できますよ。

原理の方を知りたい方はそちらの方の記事から順に読んで下さいな。

WinActorまとめ

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です