• ベストアンサー

VB.NETとEXE

VB.NETで作成したフォーム(仮にメインフォームとします)にコマンドボタンを複数貼り付けています。 各コマンドボタンをクリックすると、それぞれの別のEXEが起動します。 (例 コマンドAをクリックすると、EXE-Aが起動、コマンドBをクリックするとEXE-Bが起動。両方一度に起動も可) この時、必ずメインフォームの上にEXEのフォームが重なるように表示されています。 そこで質問があります。 1、複数EXEが起動されている時、一番前面に表示されているEXEを識別する方法はありますか? 「現在アクティブなEXE」とは異なります。なぜなら、メインフォームをクリックすると、前面に表示されているEXEはアクティブな状態とはならないためです。 2、メインのフォームの右上にある「最大化」や「最小化」のボタンをクリックしたら、それに連動してEXEも最大化や最小化をするようにすることは可能でしょうか? すこしわかりにくいと思いますが、補足もしますので、アドバイスよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

>GetWindow、GetTopWindow、GetNextWindow をまとめた、 enumwindowもあります。 http://www.vbvbvb.com/jp/gtips/index0801.html の846あたりにVB6のソースですが、サンプルがあります。 NETはわからないですが、読み取ってコンバートしてください。 だれか変わりにNETに翻訳してくれるなら、VB6でのサンプルソースを載せてもいいのですが、、、VB6のサンプルならいらないかな?

pichon_999
質問者

お礼

アドバイス、ありがとうございます。 参考URLは本当に勉強になります。 ブックマークに登録させていただきました。 .NETは社内で初めての試みで、誰も分かる人がおらず、VB6から翻訳(?)するとこばかりなので、VB6のソースでも大変助かります。 教えていただいたソースでなんとかなりそうなので頑張ってみます。 本当にありがとうございました。

その他の回答 (1)

  • don_cha
  • ベストアンサー率34% (139/407)
回答No.1

1.GetWindow、GetTopWindow、GetNextWindowと言うAPI関数がありますのでそちらを組み合わせれば識別可能ではないかと思います。 2.最小又は最大クリック時イベント処理で、連動する別EXEに対して最小又は最大になるようメッセージを投げれば良いかと思います。

pichon_999
質問者

お礼

ありがとうございます。 おかげで仕様を変更してもらわなくてもよくなりそうです(^^; API関数を使ったことがない(VB6含めて)ので、それも勉強しないといけませんね。 「EXEにメッセージを投げる」というのもしたことがないので頑張って研究(?)してみます。

関連するQ&A