|
分類:[VB.NET]
分類:[VB.NET]
現在以下のようにして外部アプリケーションを起動しているのですが、起動して終了した後もとのファームがWord等を開いていたりすると後ろに隠れてしまいます。また、強制的に最前面にしようとタスクバーが点滅してしまいます。起動した外部アプリケーションを終了した時に元のフォームを最前面に表示し、タスクバーの点滅がないようにしようとするにはどうしたらよいのでしょうか?
OS:WinXP VB.NET2003 Framework1.1 ------------------------------------------------------------------------ Private m_frm As Form Private proc As Process
Public Sub StartAppWait(ByVal parentForm As Form, ByVal strPath As String)
proc = New Process m_frm = parentForm
Try m_frm.Refresh() m_frm.Enabled = False
'// ▼アプリケーションを起動▼ // With proc.StartInfo .FileName = PathCombine(g_strAppPath, strPath) .WindowStyle = ProcessWindowStyle.Normal End With proc.Start()
'// プロセスが終了した時にExitedイベントを発生 // proc.EnableRaisingEvents = True '// イベントハンドラの追加 // AddHandler proc.Exited, AddressOf proc_Exited Catch ex As Exception Call ShowErrorMessage(ex, "アプリケーション起動エラー") m_frm.Enabled = True Finally End Try End Sub
Private Sub proc_Exited(ByVal sender As Object, ByVal e As EventArgs)
Try '// プロセスが終了した時に実効される // m_frm.Enabled = True m_frm.Activate() m_frm.Refresh() Catch ex As Exception Call ShowErrorMessage(ex, "外部アプリケーション終了エラー") Finally '// イベントハンドラの開放 // RemoveHandler proc.Exited, AddressOf proc_Exited
proc.Close() proc.Dispose()
m_frm.TopMost = True m_frm.TopMost = False End Try
End Sub
|