[vb.net] 프로그램 중복 실행 방지 하기 > vb.net

본문 바로가기

vb.net

[기타] [vb.net] 프로그램 중복 실행 방지 하기

회원사진
하나를하더라도최선을
2021-05-06 20:52 8,034 0

본문




출처 :: http://egloos.zum.com/xsylphid/v/5762837

'// -----------코드 1번-----------
Dim bCreated As Boolean
Dim mtx As New System.Threading.Mutex(True"이름", bCreated)
If Not bCreated Then
    MessageBox.Show("Program already started!!""Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Application.ExitThread()
End If
 
'// -----------코드 2번-----------
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > Then
    MsgBox("프로그램이 이미 실행중입니다!", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, Me.Text)
    End
End If



VB .NET 프로그램 중복 실행 방지 하기


중복 실행을 방지 해야 하는 프로그램의 경우
 
전역변수 선언부분, 프로그램 시작부분, 프로그램 종료부분에 아래와 같은 코드를 넣어주시면 됩니다.
 
 
 
 
전역변수 위치
 
 
    Dim bCreated As Boolean
    Dim mtx As New System.Threading.Mutex(True"MyMutex", bCreated) 'MyMutex 라는 이름으로 뮤텍스 생성
 
 
 
 
 
프로그램 시작 위치 (ex. Form_Load)
 
 
    If Not bCreated Then '뮤텍스가 정상적으로 생성되지 않았으면 같은 이름의 뮤텍스가 있는것으로 판단
        MessageBox.Show("Program already started!!""Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Application.ExitThread()
    End If
 
 
 
 
 
프로그램 종료 위치 (ex. Form_Closing)
 
 
    mtx.ReleaseMutex()
 
 
 
 
 
내용을 보시면 알겠지만,
중요한것은..
 
어플리케이션이 실행될때.. 뮤텍스를 생성하고
 
정상적으로 생성이 되었으면..
최초의 실행이라고 가정하고,
 
정상적으로 생성되지 못했으면
최초의 실행이 아니라고 가정합니다.
 
그리고 프로그램 종료 시점에 뮤텍스를 릴리즈 해주면 됩니다.

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색