プロが教えるわが家の防犯対策術!

いつもお世話になっております。
UWSC超超初心者です。

早速質問なのですが、アプリを閉じたのに、
GETID(”アプリ”)が「-1」という現象が出てきて悩んでいます。

Windowsタスクマネージャーで「アプリ」がないことを確認しました。
何がいけないか教えていただけませんでしょうか。
ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという
認識は合っていますでしょうか。

よろしくお願いします。

A 回答 (2件)

完全一致というのは案外厄介です。

というのは、操作の対象となるアプリとよく似たタイトルの別アプリがいて、そちらの方が長いタイトルだと、そのままではチェックできないからです。例えば以下のようなタイトルの二つのアプリがいた場合、1.UWSをキーにしてウィンドウIDを取ってくると、どっちが引っかかるか解りません。

1.UWS -メモ帳
1.UWS -Microsoft Word

運が悪いと、自分が操作したい方じゃないアプリのIDを取ってきて、そっちに操作が行ってしまうことだってあり得ます。まさに今、それに近いことが起こっているわけですよね。

なので、今開いている全部のウィンドウIDをGETALLWIN関数で取ってきて、片っ端からタイトルを比較し、自分の正体をはっきりさせ、覚えておくといった工夫が必要かと思います。一度取得したウィンドウIDはアプリを閉じるまでずっと有効なため、変数に書いておけばいちいち調べ直す必要もありません。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

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

お礼日時:2009/07/01 15:52

>ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという認識



先にヘルプ読め
// 指定Window の ID を返す
戻値  そのWindowを識別するID (NGの時は -1)

この回答への補足

ご回答、ありがとうございます。

ヘルプを参照しました。
>引数
>タイトル: 識別したいWindowのタイトル (タイトルの一部分だけでもOK)

タイトルの一部分が含まれているファイルがオープンされていたため、
GETIDの戻り値は「-1」でなかったようです。

文字列が完全一致したWindowタイトルのIDを取るには、どうしたら良いでしょうか。

補足日時:2009/07/01 13:34
    • good
    • 0

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

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