• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:uwsc 同一ソフトをクリックすると・・・)

uwsc同一ソフトで複数起動すると上書きされる理由と改善方法

このQ&Aのポイント
  • uwscを複数起動し、それぞれのウィンドウにデータを入力した際、一つ目に入力した値が他のウィンドウに上書きされてしまう問題が発生します。その原因として、uwscが複数のウィンドウを別々のインスタンスとして認識していないためです。
  • uwscは各ウィンドウを同じソフトとして認識しているため、他のインスタンスの操作が反映されてしまいます。これを改善するためには、uwscにマルチインスタンス対応の設定を行う必要があります。
  • 詳しい手順はuwscの公式ドキュメントを参照してください。また、uwsc以外のツールを使用する方法もあります。複数のウィンドウを別々のソフトとして認識し、個別に操作できるツールを探してみてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.1

それは、ウィンドウIDが同じだからじゃないですか?同一ソフトで複数立ち上げられるものとしてはメモ帳もそうですけど、UWSCが起動した状態でメモ帳を2つ起動し、順番にクリックしてUWSCで記録すると、2つとも「GETID("無題 - メモ帳","Notepad")」となってしまうはずです。これではウィンドウIDが同じになってしまい、区別できません。おそらく、こういうことが起きているのだと思います。 アプリケーションのタイトルが区別できる場合、先のメモ帳の例で言うと「無題」ではなくファイル名が設定されていれば、タイトルを全て指定することで、GETIDの値が区別可能になります。「GETID("C:\TEST.TXT - メモ帳","Notepad")」のようにです。 もしタイトルでは区別できない場合、アプリの立ち上げ順序に依存しちゃいますが、各ソフトをACW関数で切り替えるのをやめて、Alt+Tabキーでの切り替えにすれば対応できるでしょう。次のような感じです。 KBD(VK_ALT,DOWN,40) KBD(VK_TAB,CLICK,40) KBD(VK_ALT,UP,40) この例だと次のアプリがアクティブになります。もし2つ先のアプリをアクティブにしたければ、KBD(VK_TAB,CLICK,40)を2行並べてください。3つ先なら3行並べればOKです。 先に「アプリの立ち上げ順序に依存する」と書きましたが、これはこの方法で切り替えるスクリプトを作成した場合、次にこのスクリプトを動かす時もアプリの立ち上げ順序が同じになっていないと、誤動作するためです。例えばTabを3回押したらそのツールの3個目になるつもりだったのに、前回と違って今回はOutlookがそこにいた…という事故が起こりうるわけです。なので、スクリプトの先頭にツールの起動処理を入れてしまう方が安全かも知れませんね。

aslikethat
質問者

補足

素早い詳しいご回答ありがとうございます。 そういうことだったんですね^^ tabu+altを5回を繰り返すと上手い具合に循環できるようになったのですが、フォームへの入力と、検索開始ボタンのクリックで、先ほどの様になってしまいます。これらはどうやってスクリプトを書けばいいのでしょうか? htmlの場合はvalueやnameでできることは分かったのですがアプリはわかりませんでした。

関連するQ&A