• ベストアンサー

Shellコマンドで別のexeを起動するとフォーカスが別exeにいかない

2本のEXE(AとB)があって、 AからBを呼び出して、Bの終了ボタンを 押すとAに戻るようなプログラムがあります。 Bを最前面にして起動しているのですが、 Bにフォーカスがいってくれません。 (Aに残ったままになっている?) ちなみにAもBもウィンドウスタイルは、 青いバーが出ている状態(動かせる状態)です。 Bが起動している間、Aはその後ろでまっている ようなイメージです。 どうやったらフォーカスを渡すことが できるでしょうか? <条件> Bのプログラムは修正することができません。 Aのプログラムは自由に修正できます。 どなたか教えて下さい。

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

  • ベストアンサー
回答No.1

http://www.ops.dti.ne.jp/~allergy/vb/vbvba.html#exec こちらを参考にしてみて下さい。

SEAMOON
質問者

お礼

ありがとうございます!!!やってみます。

その他の回答 (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のウインドウハンドルを渡します。 でどうでしょうか?

SEAMOON
質問者

お礼

回答ありがとうございます! vbNormalFocusはつけてます。 2でいけそうです!やってみます。