none
RRS feed

모든 응답

  • 안녕하세요.

    이런식으로 작업하시면 어떨까 싶네요.

        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim p As System.Diagnostics.Process = _
                System.Diagnostics.Process.Start("explorer.exe")
    
            Dim a As Integer
            a = MsgBox("사용중인 모든창이 종료됩니다", vbOKOnly + vbInformation, "주의!")
    
            '확인 창 표출 후 종료 시작'
            p.WaitForExit()
            '종료 후 작업 실행
    
            p.Start()
            ' 작업 종료 후 익스플로러 실행'
        End Sub

    작업할 프로세스를 처음에 정의해두시고, 

    해당프로세스의 인스턴스를 그대로 다시한번 작업종료 후에 Start 시켜주는 방식입니다.

    Dim p As System.Diagnostics.Process =
    
      System.Diagnostics.Process.Start("explorer.exe")
    

    여기에서 p 를 그대로 이용하는것이지요.

    WaitForExit

    이것은 해당 프로세스의 종료까지 일단 다음작업으로 진행하지않고, 기다리겠다는 의미입니다.

    순차적진행이 가능하게 되지요.

    도움되시길 바랍니다.

    감사합니다.


    프로그램 개발에는 정답이 없다.

    • 답변으로 표시됨 HAmJI 2014년 6월 30일 월요일 오전 7:21
    • 답변으로 표시 취소됨 HAmJI 2014년 11월 6일 목요일 오후 11:15
    2014년 6월 30일 월요일 오전 6:56
  • 안녕하세요.

    그렇다면, 파일의 존재여부를 확인해서 프로세스를 기동하도록

    방법을 조금 변경해보시는건 어떨까요?

    아래를 참고해주세요.

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim what As Integer
            Dim fileName As ArrayList = New ArrayList()
            fileName.Add("iexplorer.exe")
            fileName.Add("explorer.exe")
            fileName.Add("XAgentrun.exe")
            fileName.Add("XPLATFORM.exe")
    
            Dim p(fileName.Count - 1) As System.Diagnostics.Process
            
            For i As Integer = 0 To fileName.Count - 1 Step 1
                If System.IO.File.Exists(fileName(i)) Then
                    p(i).StartInfo.FileName = fileName(i)
                    p(i).Start()
                End If
            Next i
    
            what = MsgBox("현재 사용중인 모든창이 종료됩니다.", vbOKOnly + vbInformation, "주의!!!")
    
            For i As Integer = 0 To fileName.Count - 1 Step 1
                If System.IO.File.Exists(fileName(i)) Then
                    p(i).StartInfo.FileName = fileName(i)
                    p(i).WaitForExit()
                End If
            Next
    
    
            MsgBox("완료.", vbOKOnly + vbInformation, "주의!!!")
    
    
    
        End Sub

    위의 예제에서 파일명 (*iexplorer.exe) 을 기재하는곳에는 해당 파일의 풀패스 (*c:/temp/iexplorer.exe) 를 기재하셔야 합니다. 그리고 해당파일이 존재하지 않는경우에는 기동되지않는 모듈이 되는것이죠.

    혹은, 파일이 존재하지않는다는 예외를 발생시켜서 제어할수도 있습니다만.. 소스가 좀 더러워질수도 있다는....... ;;

    일단 이 방법에 대해서는 아래의 문서를 참고하시면 될것 같습니다.

      FileNotFoundException

    도움되시길 바랍니다. 감사합니다.


    프로그램 개발에는 정답이 없다.


    • 편집됨 Sungman KOMVP 2014년 7월 7일 월요일 오전 12:44
    2014년 7월 7일 월요일 오전 12:44