자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb.net

IT HUB를 찾아주셔서 감사합니다.

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

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 12,052회 작성일 21-05-06 20:52

본문


출처 :: 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()
 
 
 
 
 
내용을 보시면 알겠지만,
중요한것은..
 
어플리케이션이 실행될때.. 뮤텍스를 생성하고
 
정상적으로 생성이 되었으면..
최초의 실행이라고 가정하고,
 
정상적으로 생성되지 못했으면
최초의 실행이 아니라고 가정합니다.
 
그리고 프로그램 종료 시점에 뮤텍스를 릴리즈 해주면 됩니다.

댓글목록

등록된 댓글이 없습니다.