OS WindowsNT4.0SP6
言語 VB6.0SP5
以上の環境でプログラムを作成しています。
EXEを起動して、その中にShellで別EXEを起動した時、
別EXEが終了すると、元EXEにフォーカスが戻らないのですが、
どうすればいいでしょうか?
別EXEが終わったら、Setfocusするしかないのでしょうか?
別のやり方があれば教えてください
また、Windowsのバージョンによって動作に違いはあるのでしょうか?
よろしくお願いします
別EXEの終了を待つのか、非同期並列実行するのかで
やりかたが若干変わりますが、
元EXEから別EXEを終了監視して、
終了したら自分をActiveにしたらどうでしょう。
>Windowsのバージョンによって動作に違いはあるのでしょうか?
組み方次第です。
Sayさん、返信ありがとうございます。
Private Sub menBackUp_Click()
Dim ShellID&
Dim ExitCode&
Dim ret As Long
frmCostIn.Enabled = False
ShellID& = Shell(App.Path & "\BackUp\" & "DbBackUp.exe", vbNormalFocus)
ExitCode& = ProcessWait(ShellID&, True)'待ち
frmCostIn.Enabled = True
AppActivate frmCostIn.Caption
End Sub
のように書いてみました。フォーカスは戻ってきました。Windowsのバージョンによってですが、NT4.0SP6だとフォーカスを失うだけなのですが、2000だとウィンドウが一番後ろまでいってしまいます。ここの書き方なのでしょうか?
ツイート | ![]() |