성태님
Clickonce 실행 시 Threading 해서 주는 부분은
myProcess = System.Diagnostics.Process.Start(sFileName, "dfshim.dll,ShOpenVerbApplication " + "
http://xxx.xxx.xx.xx:xxx/WindowsApplication2.application)
'アプリケ?ションが終了まで待ってる
Me.Visible = False
Threading.Thread.Sleep(2000)
Dim sysProc As Process
Dim sysProcess() As Process
sysProcess = System.Diagnostics.Process.GetProcessesByName("WindowsApplication2")
Dim i As Integer
If sysProcess.Length = 0 Then
For i = -1 To sysProcess.Length = 1 Step 0
sysProcess = System.Diagnostics.Process.GetProcessesByName("WindowsApplication2")
Threading.Thread.Sleep(100)
If sysProcess.Length = 1 Then
Exit For
End If
Next
End If
For Each sysProc In sysProcess
If sysProc.ProcessName.Equals("WindowsApplication2") Then
sysProc.WaitForExit()
Threading.Thread.Sleep(800)
Me.Visible = True
Exit For
End If
Next
일단 이렇게 줘서 처음 설치하고나서도 WindowsApplication2를 꺼도 WindowsApplication1이 다시 보이게끔 설정해놨습니다.
---------------------------------------------------------------------------------------------------------------
이제 성태님이 조언해준대로 바꿔보려고하는데
WindowsApplication2를 기동할때
Dim ewh As EventWaitHandle
If username="abc" then
Application.Run("Form1")
ewh = New EventWaitHandle(False, EventResetMode.AutoReset, "WindowsApplication2")
ewh.WaitOne()
End if
이렇게 event를 만들었고 종료시에도
ewh.close() 로 닫히게 설정했습니다.
이제 WindowsApplication1에서 WindowsApplication2를 실행하는 버튼을 누르면
저 설정된 Event가 있는지 찾고 없으면 있을때까지 찾은 후 Event를 대기시키면 되는건가요?
쓰고나니 뭔가 복잡하네...ㅠ
[최초 등록일: ]
[최종 수정일: 8/4/2017]