ウィンドウのハンドルを列挙するには


夢見  2002-02-27 23:16:53  No: 75340

はじめまして。はじめて質問させていただきます。
ウィンドウハンドル列挙を
コールバックプロシージャEnumWindowにより
取得する事が出来たのですが
タスクにいない?アプリケーションではない
ウィンドウハンドル取得されてしまうのですが
これを判定する方法はあるのですか
ウィンドウキャプションを列挙し選択されたウィンドウ
だけを常に手前に設定する処理を作成しています。
又、最初に取得したハンドルからウィンドウタイトルを取得
ユーザーオペレーションにより選択された時点で
ウィンドウを手前に持ってくるのですが
この時点で先に取得したハンドル値が変わっている
という事はあるのですか?
再度、ウィンドウタイトルからハンドルを取得しにいった方が
良いでしょうか?
宜しくお願いします。


たかみちえ  URL  2002-02-28 00:10:22  No: 75341

まずひとつめから…

>  タスクにいない?アプリケーションではない
>  ウィンドウハンドル取得されてしまうのですが
  これで十分かどうか…、というか、十分ではないんですけど、
  IsWindowVisibleのAPIで、見えるウィンドウだけを列挙すれば、
だいたいアプリケーションのみになります。

  ほかにもIsなんとかのAPIはあるので、
くみ合わせればけっこう十分な効果があるかも…。

  あとはGetWindowLongとかで、ウィンドウスタイルを取得したり、
いろいろ組み合わせることもできます。

  つぎふたつめ…

>  この時点で先に取得したハンドル値が変わっている
>  という事はあるのですか?
  よくわかりませんけど、
  よく他の人の作ったサンプルやクラスなどで、
ハンドルをおしえて、あとはなにもしないというものがおおいですよね、
だから多分、変わったりすることはないんじゃないでしょうか?
そのウィンドウが、裏でいったん削除されたりした場合はそうでもないでしょうけど…。

  だから念のため、もういちど確認しておいても、無駄にはならないと思います。


Say  2002-02-28 01:35:04  No: 75342

WindowHandleはWindowが生成されてから消滅するまでに変化することはありません。
が、ウィンドウキャプションは変化している可能性があります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加