이 글의 주소 : http://winpe.pe.kr/entry/VB-No-Duplicate (복사)
불펌을 금지합니다.
불펌을 금지합니다.
VB로 프로그래밍을 짜다보면 프로그램이 중복실행이 되지 않게 하고 싶을 경우가 있습니다.
그럴때 사용하는 코드는 아래와 같습니다.
이 방법으로는 간단하게 중복실행을 방지할수 있습니다만, 어느 정도 한계가 있습니다.
예를 들면 파일이름을 바꾸거나 프로그램을 다른 위치에 복사해놓고 실행하면 중복실행이 됩니다.
이를 방지하려면 API를 사용 하려면 됩니다.
모듈을 하나 추가해서 아래 코드를 넣습니다.
그다음에 form_load부분에 아리의 코드를 넣습니다.
이렇게 하시면 프로그램 파일 이름을 변경하거나 위치를 이동해서 실행해도 중복실행이 되지 않습니다.
자료 출처: http://www.vbfrance.com/forum/sujet-PROGRAMME-DEJA-OUVERT_559534.aspx
그럴때 사용하는 코드는 아래와 같습니다.
Private Sub Form_Load() If App.PrevInstance = True Then MsgBox "프로그램이 이미 구동중입니다", vbExclamation, "이미 구동중" End End If End Sub
예를 들면 파일이름을 바꾸거나 프로그램을 다른 위치에 복사해놓고 실행하면 중복실행이 됩니다.
이를 방지하려면 API를 사용 하려면 됩니다.
모듈을 하나 추가해서 아래 코드를 넣습니다.
'// API Needed Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long '// Instance Code Private Const InstanceCode = "A8F500EA:D54F:210F:ED0A:F4A5A20C038B" Public Function PrevInstance() As Boolean '*** This function checks if there is another instance running *** '// Check for a window containing the InstanceCode '// If it is found, then return true (another instance is running) If FindWindow(vbNullString, ByVal InstanceCode) Then PrevInstance = True Exit Function End If '// Else, create the window with the InstanceCode CreateWindowEx 0&, "STATIC", InstanceCode, 0&, 0&, 0&, 0&, 0&, 0&, 0&, App.hInstance, 0& PrevInstance = False End Function
그다음에 form_load부분에 아리의 코드를 넣습니다.
Private Sub Form_Load() If PrevInstance Then MsgBox "프로그램이 이미 구동중입니다", vbExclamation, "이미 구동중" End End If End Sub
이렇게 하시면 프로그램 파일 이름을 변경하거나 위치를 이동해서 실행해도 중복실행이 되지 않습니다.
자료 출처: http://www.vbfrance.com/forum/sujet-PROGRAMME-DEJA-OUVERT_559534.aspx
'Tip > Visual Basic' 카테고리의 다른 글
간편히 IP확인하는 프로그램 만들기 (3) | 2009.04.13 |
---|