他のアプリケーションを起動し終わったら元のフォームをアクティブにしたい
- 題名: 他のアプリケーションを起動し終わったら元のフォームをアクティブにしたい
- 著者: なおみ
- 日時: 2005/04/13 13:06:13
- ID: 10379
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 他のアプリケーションを起動し終わったら元のフォームをアクティブにしたい
- 著者: なおみ
- 日時: 2005/04/13 14:27:09
- ID: 10383
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: 他のアプリケーションを起動し終わったら元のフォームをアクティブにしたい
- 著者: なおみ
- 日時: 2005/04/13 14:58:13
- ID: 10385
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
2005/04/13(Wed) 17:52:12 編集(投稿者)
初めて投稿させていただきます。
私は、VB.NETでWindowsフォームを作成しているプログラマーです。
TEST1.exeからTEST2.exeを呼び出してTEST2が終わるまで待機し、
終わったらTEST1をアクティブにしたいのですが、
TEST1.exeを起動するために開いたエクスプローラーが
アクティブになってしまいます。
ただ、ソースから実行した場合はきちんとTEST1がアクティブになります。
http://dobon.net/vb/bbs/log3-6/3238.html
を参考にさせていただいたのですが、何か実行ファイルだといけない
ということがあるのでしょうか?
ちなみにEXEを作成する時にはReleaseにしています。
ご返答のほどよろしくお願いいたします。
以下にこのソースの記述を載せさせていただきます。
-------------------------------------------------
Private Sub Button1_Click(・・・・) Handles Button1.Click
lblMsg.Text = "開始"
Me.Refresh()
'別画面起動
Dim subthread As System.Threading.Thread = Nothing
Me.Enabled = False
'起動するためのスレッドを実行
subthread = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf ThreadSub))
subthread.Start()
'スレッドが終了するまで待機
While (subthread.IsAlive)
Application.DoEvents()
End While
Me.Enabled = True
Me.Activate()
lblMsg.Text = "終了"
Me.Refresh()
End Sub
-------------------------------------------------
Private Sub ThreadSub()
Dim proc As Process = New Process
'別画面を起動
With proc.StartInfo
.FileName = "c:\work\TEST2.exe"
.Arguments = "1"
.WindowStyle = ProcessWindowStyle.Normal
End With
proc.Start()
'入力画面のプロセスが終了するまで待機
proc.WaitForExit()
End Sub