起動済みのEXEをアクティブにするには?

解決


初心者  2006-09-28 16:04:35  No: 23418  IP: 192.*.*.*

いろいろ試したのですがうまくいかないのでご教授願います

フォームのボタンクリックでCreateProcessにて自作EXEを起動させ、同じ
ボタンを押されたときの2重起動の防止はうまくいくのですが、そのEXEが
起動されていたときに前面に表示させたいのですがうまくいきません。

  WinHnd := FindWindow('JISAKU', nil);
  SetForegroundWindow(WinHnd);

FindWindowじゃ、外部EXEは引っかかってくれないのでしょうか?
考え方がおかしいのかもしれませんが、よろしくお願いいたします。

編集 削除
igy  2006-09-28 17:44:38  No: 23419  IP: 192.*.*.*

'JISAKU'はクラス名ですか?

編集 削除
Mr.XRAY  URL  2006-09-28 21:06:59  No: 23420  IP: 192.*.*.*

http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N011.html

このページの  List5  は参考になりませんか?
すでに確認済みでしたらご容赦ください。

編集 削除
かみづ  2006-09-28 22:27:33  No: 23421  IP: 192.*.*.*

>FindWindowじゃ、外部EXEは引っかかってくれないのでしょうか?
FindWindowの結果はどうなっているのですか?

またWin98以降はSetForegroundWindowだけでは他プロセスのウィンドウをアクティブにできないので、AttachThreadInputを入れてみてはどうでしょう?

編集 削除
ん?  2006-09-29 08:37:12  No: 23422  IP: 192.*.*.*

> FindWindowじゃ、外部EXEは引っかかってくれないのでしょうか?
SetForegroundWindowの行でブレークポイント入れて、WinHndに0以外の値が
入っていますか?

0でなければ、最前面にでてこないのでしょう。
過去ログ
> 最前面表示について
https://www.petitmonte.com/bbs/answers?question_id=3625

編集 削除
初心者  2006-09-29 11:21:28  No: 23423  IP: 192.*.*.*

皆様、いろんなご回答ありがとうございます。
回答をみてドキッとしました・・・
FindWindowの使い方間違っていました。
クラス名じゃなかったです。
助かりました。ありがとうございました。

編集 削除