Помогает ли функция: App.PrevInstance? (+)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ElektriK
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 12.12.2005 (Пн) 20:53
Откуда: Екатеринбург

Помогает ли функция: App.PrevInstance? (+)

Сообщение ElektriK » 13.12.2005 (Вт) 17:33

Все мы сталкиваемся с простой задачей: не дать юзеру запустить копию программы. Вот это работает:

If App.PrevInstance = True Then
MsgBox "программа уже запущена!", vbExclamation
Exit Sub
End If

Но если сделать копию программы с другим названием, то она очень замечательно открывается и продвинутый юзер получит 2 копии одной программы.

И все же как тогда избежать открытие копии программы?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.12.2005 (Вт) 17:38

Код: Выделить всё
'Code by Adam Verwijs
Const ERROR_ALREADY_EXISTS = 183&
Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As Any, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
Private Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
    Dim hMutex As Long
    'Try to create a new Mutex
    hMutex = CreateMutex(ByVal 0&, 1, App.Title)
    'Did the mutex already exist?
    If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then
        'Clean up
        ReleaseMutex hMutex
        CloseHandle hMutex
        'More than one instance detected
        MsgBox "More than one instance"
        End
    Else
        'form load code
    End If
End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, SemrushBot и гости: 91

    TopList