- ベストアンサー
【UWSC】アプリを閉じたのに、GETID(”アプリ”)が「-1」となってくれない。
いつもお世話になっております。 UWSC超超初心者です。 早速質問なのですが、アプリを閉じたのに、 GETID(”アプリ”)が「-1」という現象が出てきて悩んでいます。 Windowsタスクマネージャーで「アプリ」がないことを確認しました。 何がいけないか教えていただけませんでしょうか。 ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという 認識は合っていますでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
完全一致というのは案外厄介です。というのは、操作の対象となるアプリとよく似たタイトルの別アプリがいて、そちらの方が長いタイトルだと、そのままではチェックできないからです。例えば以下のようなタイトルの二つのアプリがいた場合、1.UWSをキーにしてウィンドウIDを取ってくると、どっちが引っかかるか解りません。 1.UWS -メモ帳 1.UWS -Microsoft Word 運が悪いと、自分が操作したい方じゃないアプリのIDを取ってきて、そっちに操作が行ってしまうことだってあり得ます。まさに今、それに近いことが起こっているわけですよね。 なので、今開いている全部のウィンドウIDをGETALLWIN関数で取ってきて、片っ端からタイトルを比較し、自分の正体をはっきりさせ、覚えておくといった工夫が必要かと思います。一度取得したウィンドウIDはアプリを閉じるまでずっと有効なため、変数に書いておけばいちいち調べ直す必要もありません。
その他の回答 (1)
- mindatg
- ベストアンサー率48% (110/227)
>ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという認識 先にヘルプ読め // 指定Window の ID を返す 戻値 そのWindowを識別するID (NGの時は -1)
補足
ご回答、ありがとうございます。 ヘルプを参照しました。 >引数 >タイトル: 識別したいWindowのタイトル (タイトルの一部分だけでもOK) タイトルの一部分が含まれているファイルがオープンされていたため、 GETIDの戻り値は「-1」でなかったようです。 文字列が完全一致したWindowタイトルのIDを取るには、どうしたら良いでしょうか。
お礼
ご回答、ありがとうございます。 GETALLWIN関数というのがあるのですね。 それで、もう少しがんばってみます。 ありがとうございました。