タイトル名を入力しFindWindowで検索しハンドルを取得してその取得したハンドルを使ってウィンドウを最小化にしたり元のサイズに戻したいのですが、なぜか反応がない時があります。反応がある時もあるので構文が間違っているとは思えないし、ハンドルは取得できているのでタイトル名はあっているはずなのですが、なぜなのでしょうか?
どんなコーディングになっているか・・・
また、そんなAPIを使ったのか解らないので、コメントのしようが
ありません。
因みに、SendMessageですか?PostMesageですか?
メッセージを送信した直後に、ディスパッチさせる若干の時間的
猶予も必要と思いますが・・・はてさて・・・
以上。
そうそう・・・VB6 ですか?
http://www.vbvbvb.com/jp/gtips/0801/gShowWindowAsyncSwMinimized.html
ここにサンプルがありました。
ご参考までに。
以上。
ハンドルは正常動作する時としない時で同じ値が取れてきていますか?
また、FindWindowの第一引数のクラス名は指定していますか?
もし指定していない場合、以下の場合に取得されるハンドルが変わってきます。
・同じ実行ファイルが二つ以上実行されている場合
・同じウィンドウタイトルのウィンドウが開いている。
(エクスプローラで実行ファイルのウィンドウタイトルと
同じ名前のフォルダを開いている場合等)
実行ファイルに二重起動防止措置が取られているのであれば、
クラス名を指定することで上記の2つ目の場合でも正常にハンドルが取得できます。
実行環境はVB6ですか?VB.NETですか?
ツイート | ![]() |