Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > 2 окна с 1 именем


Автор: Iww 26.4.2009, 21:12
Здравствуйте!
У меня есть программа, которая при открытии должна проверять есть ли уже запущенная копия (экземпляр) этой программы т.е. чтобы 2 программы нельзя было запустить.
Вот я пытался сделать, но не получилось....

Код

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim hWndActive, window As Long

Private Sub Form_Load()
window = FindWindow(vbNullString, "MyWindow")
hWndActive = GetForegroundWindow()
If (window <> 0) Then
     If hWndActive = window Then
          Text1.text = "1 program is running"
     Else
          Text1.text = "2 programs are running"
          Unload Me  ' тобишь, если программа уже запущена - выключить ту, которую мы только что запустили
     End If
End If
End Sub


С Уважением, Иван!

Автор: Akina 26.4.2009, 22:34
FAQ - VB - FAQ - Окна 

Автор: neic 26.4.2009, 22:41
Код

If App.PrevInstance = True Then
MsgBox "Программа уже запущена"
End
End If 

Автор: Iww 26.4.2009, 22:43
Большое спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)