【質問】
「ウィンドウ - フォーカス」アクションを行いたい対象のウィンドウが
・ウィンドウタイトルは無し(スペースもなし)
・ウィンドウクラスは「Afx:40000000」から先は開くたびに変わる
・ウィンドウハンドルも毎回変わる
となっております。
このようなウィンドウに対して「ウィンドウ - フォーカス」などのアクションを行いたいのですが
方法はあるでしょうか?
【回答】
方策としては、2通り考えられます。
方策1:該当の印刷画面が1つしかないことが前提
>・ウィンドウクラスは「Afx:40000000」から先は開くたびに変わる
この部分が固定なのであれば、ウィンドウクラスを指定し
Afx:40000000*
と指定してすることで操作可能となります。
ただし、複数の一致があるとそこでエラーになるか
意図しない画面がフォーカスされる可能性がございます為
ウィンドウが1つしかないことが前提です。
方策2:該当のウィンドウは、開かれると必ず最初は最前面に出る場合
AutoMateの関数、「GetFocusedWindowHandle」関数を使います。
方策としては:
1. ウィンドウハンドル格納用の変数作成
2. ウィンドウを開く行為を行う
3. 数秒wait
4. 「変数 - セット」で1の変数に
「%GetFocusedWindowHandle()%」を格納
5. 以降のウィンドウの操作で、1の変数をウィンドウハンドルに指定して
操作を行う