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

解決


初心者  2006-09-29 01:04:35  No: 23418

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

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

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

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


igy  2006-09-29 02:44:38  No: 23419

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


Mr.XRAY  URL  2006-09-29 06:06:59  No: 23420

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

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


かみづ  2006-09-29 07:27:33  No: 23421

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

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


ん?  2006-09-29 17:37:12  No: 23422

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

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


初心者  2006-09-29 20:21:28  No: 23423

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


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

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






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