• ベストアンサー

【UWSC】アプリを閉じたのに、GETID(”アプリ”)が「-1」となってくれない。

いつもお世話になっております。 UWSC超超初心者です。 早速質問なのですが、アプリを閉じたのに、 GETID(”アプリ”)が「-1」という現象が出てきて悩んでいます。 Windowsタスクマネージャーで「アプリ」がないことを確認しました。 何がいけないか教えていただけませんでしょうか。 ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという 認識は合っていますでしょうか。 よろしくお願いします。

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

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

完全一致というのは案外厄介です。というのは、操作の対象となるアプリとよく似たタイトルの別アプリがいて、そちらの方が長いタイトルだと、そのままではチェックできないからです。例えば以下のようなタイトルの二つのアプリがいた場合、1.UWSをキーにしてウィンドウIDを取ってくると、どっちが引っかかるか解りません。 1.UWS -メモ帳 1.UWS -Microsoft Word 運が悪いと、自分が操作したい方じゃないアプリのIDを取ってきて、そっちに操作が行ってしまうことだってあり得ます。まさに今、それに近いことが起こっているわけですよね。 なので、今開いている全部のウィンドウIDをGETALLWIN関数で取ってきて、片っ端からタイトルを比較し、自分の正体をはっきりさせ、覚えておくといった工夫が必要かと思います。一度取得したウィンドウIDはアプリを閉じるまでずっと有効なため、変数に書いておけばいちいち調べ直す必要もありません。

yuki7091
質問者

お礼

ご回答、ありがとうございます。 GETALLWIN関数というのがあるのですね。 それで、もう少しがんばってみます。 ありがとうございました。

その他の回答 (1)

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

>ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという認識 先にヘルプ読め // 指定Window の ID を返す 戻値  そのWindowを識別するID (NGの時は -1)

yuki7091
質問者

補足

ご回答、ありがとうございます。 ヘルプを参照しました。 >引数 >タイトル: 識別したいWindowのタイトル (タイトルの一部分だけでもOK) タイトルの一部分が含まれているファイルがオープンされていたため、 GETIDの戻り値は「-1」でなかったようです。 文字列が完全一致したWindowタイトルのIDを取るには、どうしたら良いでしょうか。

関連するQ&A