並列機能を利用して、同一アプリを多重起動(別processid)させて別々にコントロールしたいのですが、アプリが多重起動しません。方法として間違っていますでしょうか?
こんにちは
並列アクティビティは疑似並列動作となりますので片方のレーンがビジーの状態の場合
他のレーンに遷移しません。
また上記ですと、アプリケーションを使用アクティビティのオープン動作を明示的にAlwaysにしないと2つのアプリケーションは開かないと思います
一般的に並列でアプリを走らせるとデバッグ等が困難になるので、特別な理由がない限りはあまりお勧めしませんが、実現したいことは何になりますでしょうか?
ご回答いただきありがとうございます。別サーバーの設定値をリードするタイマー処理が存在する既存アプリがありまして、1時間後にダイアログが開いて、OKボタンを押してデータ取得する必要があります。複数サーバーを同時にリードする場合は、多重起動してそれぞれ別のサーバーを指定して取得する必要があります。
複数のイベントを拾うならTriggerScopeの方がよいかもしれません。
いずれにしましてもStudioXではちょっと規模的には重いかもしれません。
ありがとうございます。TriggerScopeについても検討したいと思います。今回alwaysでアプリが多重起動することは確認できたのですが、多重起動したアプリをそれぞれ別にコントロールできていないようです。processid等で操作するウィンドウを限定することは可能でしょうか?
各コンテナの操作対象はプロセスIDを含む情報で特定されますので、操作できないのであれば、何か他の原因があるように思えます。
並列内ではなく単独の場合は操作できていますでしょうか?
また並列アクティビティは擬似並列なので、他のレーンがビジーの間は、他のレーンに処理が移りませんので、その観点からも確認いただくと良いかもしれません。
ウィンドウアタッチモードをデフォルトのアプリケーションインスタンスから単一ウィンドウに変更したところ操作対象が限定されたようですがこちらの設定で問題ないでしょうか?
並列の登録アプリケーションを3個にするとやはり、個別にコントロールできていませんでした。
前者は当該プロセスから生成したWindowがすべて操作対象になるのに対して、後者は特定のWindowのみが対象になります。
動作的に問題なければどちらでもよいかと思います。(後者の方が厳密な分、新たにWindowを生成した場合、それをアタッチする必要が出てきます)
並列の登録アプリケーションを3個にするとやはり、個別にコントロールできていませんでした。
どのように確認されていますでしょうか?
可能であればワークフロー等共有いただくとよいかと思います。
アプリケーションを使用の中にアクティブウインドウを取得がありますが、これが原因で想定の動作になっていない可能性があります。現在なアクティブなウインドウを取得するので、基本的には不要かと思います。。(かえってこのレーン以外の他のウインドウをとってくることになると思います)
返信ありがとうございます。現在起動中のアプリということを、明確にすれば改善するかと思って追加してみたのですが、不要とのことで承知いたしました削除します。現在いろいろな設定値を試しているのですが、クリック機能のプロパティで入力モードをシミュレートにすれば改善することが判明してきました。
もしウインドウが重なった状態で出現しているのでしたら、HardwareEventは不向きです。
(通常のマウス操作と同様前面のアプリケーションに対して操作してしまいます)
詳しくは以下参照ください。
参照リンクありがとうございます。
下記画像のとおり、デフォルトではアプリ・ブラウザと同一となっていたものを
シミュレートに変更しています。ハードウェアイベントは使用していません。
アプリにたいしてクリックイベントがシミュレート(バックグラウンド?)され直接送信されたのが効いたのかなと思っております。
アプリケーションを使用アクティビティ内に入力メソッドの設定がありますので、そちらが何になっていたか次第になります。デスクトップアプリの場合、デフォルトはHardwareEventになっていませんでしょうか?
同一とは何を意味しているのだろうと疑問を持ちながらもデフォルトだから大丈夫だと思って設定しておりました。ありがとうございます。細かい設定が重要な意味を持っていることを認識して開発を進めたいと思います。
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.