- ベストアンサー
VB.NETとEXE
VB.NETで作成したフォーム(仮にメインフォームとします)にコマンドボタンを複数貼り付けています。 各コマンドボタンをクリックすると、それぞれの別のEXEが起動します。 (例 コマンドAをクリックすると、EXE-Aが起動、コマンドBをクリックするとEXE-Bが起動。両方一度に起動も可) この時、必ずメインフォームの上にEXEのフォームが重なるように表示されています。 そこで質問があります。 1、複数EXEが起動されている時、一番前面に表示されているEXEを識別する方法はありますか? 「現在アクティブなEXE」とは異なります。なぜなら、メインフォームをクリックすると、前面に表示されているEXEはアクティブな状態とはならないためです。 2、メインのフォームの右上にある「最大化」や「最小化」のボタンをクリックしたら、それに連動してEXEも最大化や最小化をするようにすることは可能でしょうか? すこしわかりにくいと思いますが、補足もしますので、アドバイスよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>GetWindow、GetTopWindow、GetNextWindow をまとめた、 enumwindowもあります。 http://www.vbvbvb.com/jp/gtips/index0801.html の846あたりにVB6のソースですが、サンプルがあります。 NETはわからないですが、読み取ってコンバートしてください。 だれか変わりにNETに翻訳してくれるなら、VB6でのサンプルソースを載せてもいいのですが、、、VB6のサンプルならいらないかな?
その他の回答 (1)
- don_cha
- ベストアンサー率34% (139/407)
1.GetWindow、GetTopWindow、GetNextWindowと言うAPI関数がありますのでそちらを組み合わせれば識別可能ではないかと思います。 2.最小又は最大クリック時イベント処理で、連動する別EXEに対して最小又は最大になるようメッセージを投げれば良いかと思います。
お礼
ありがとうございます。 おかげで仕様を変更してもらわなくてもよくなりそうです(^^; API関数を使ったことがない(VB6含めて)ので、それも勉強しないといけませんね。 「EXEにメッセージを投げる」というのもしたことがないので頑張って研究(?)してみます。
お礼
アドバイス、ありがとうございます。 参考URLは本当に勉強になります。 ブックマークに登録させていただきました。 .NETは社内で初めての試みで、誰も分かる人がおらず、VB6から翻訳(?)するとこばかりなので、VB6のソースでも大変助かります。 教えていただいたソースでなんとかなりそうなので頑張ってみます。 本当にありがとうございました。