アプリ版:「スタンプのみでお礼する」機能のリリースについて

uwscについて質問なのですが、

検索エンジンからデータを拾ってくる、とあるツールを使っているのですが、このソフトが複数起動可能なソフトなので6つ起動させて、

ウィンドウを調整して、画面の左7割ぐらいに、
二列にして3つ並べています。
右側の3割にはエクセルを縦長に表示したものを表示させて、

uwscの記録を開始して、そのエクセルのA1に入力されている値を、
一番左上に表示してあるウィンドウのフォームに入力して、
で、またエクセルに戻り、A2の値を、右の一番上のウィンドウのフォームに入力して、、、とやっていき、
6つに入力しおわったところで、一番左上のウィンドウから「検索開始」というボタンを次々とクリックしていき、
uwscを停止させて、再生開始をクリックしたら、
なぜか、ツールを一つのソフトとして認識してしまっているみたいで、
一つ目に入力したものの上にA2の値が上書きされてしまい、
どんどんと上書きされてしまいます。
これはなぜなのでしょうか?
他にやり方があれば教えてください。

A 回答 (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がそこにいた…という事故が起こりうるわけです。なので、スクリプトの先頭にツールの起動処理を入れてしまう方が安全かも知れませんね。

この回答への補足

素早い詳しいご回答ありがとうございます。

そういうことだったんですね^^

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

補足日時:2010/02/25 00:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています