- ベストアンサー
Shellコマンドで別のexeを起動するとフォーカスが別exeにいかない
2本のEXE(AとB)があって、 AからBを呼び出して、Bの終了ボタンを 押すとAに戻るようなプログラムがあります。 Bを最前面にして起動しているのですが、 Bにフォーカスがいってくれません。 (Aに残ったままになっている?) ちなみにAもBもウィンドウスタイルは、 青いバーが出ている状態(動かせる状態)です。 Bが起動している間、Aはその後ろでまっている ようなイメージです。 どうやったらフォーカスを渡すことが できるでしょうか? <条件> Bのプログラムは修正することができません。 Aのプログラムは自由に修正できます。 どなたか教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
http://www.ops.dti.ne.jp/~allergy/vb/vbvba.html#exec こちらを参考にしてみて下さい。
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
回答No.2
こんにちは。KenKen_SP です。 試してませんが 1. Shell に vbNormalFocus オプションをつけるとか、、 Shell "notepad.exe" , vbNormalFocus 2. 1.でダメなら API の SetActiveWindow でフォーカスを渡すとか、、 Declare Function SetActiveWindow Lib "user32.dll" _ (ByVal hWnd As Long) As Long で引数 hWnd にBのウインドウハンドルを渡します。 でどうでしょうか?
質問者
お礼
回答ありがとうございます! vbNormalFocusはつけてます。 2でいけそうです!やってみます。
お礼
ありがとうございます!!!やってみます。