Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Алексей Немиро -

Visual Basic 5.0/6.0 - Общие вопросы

Все примеры / Общие вопросы

Как показать первую копию программы, если запускается вторая?

Автор: Алексей Немиро | добавлено: 05.03.2010, 17:10 | просмотров: 1056 (1+) | комментариев: 0 | рейтинг: *x0
Пример показывает, как можно показать первую копию программы, при попытке запустить еще одну копию этой же программы.

Инструкции

Создайте стандартный EXE-проект. На форме разместите один элемент CommandButton, назовите его cmdBeOrNotToBe и вставьте следующий код.

Код

Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Const SW_RESTORE = 9
Private Const WM_SETTEXT = &HC
Private Const BM_CLICK = &HF5

Private Sub Form_Load()
 Dim h As Long, hButton As Long
 Dim strCaption As String
 cmdBeOrNotToBe.Visible = False
 strCaption = "Моя программа"
 
 If App.PrevInstance Then
  h = FindWindow(vbNullString, ByVal strCaption)
  ActivateWindow h
  hButton = FindWindowEx(h, 0, vbNullString, ByVal "MyProgramIsBe")
  If hButton <> 0 Then SendMessage hButton, BM_CLICK, 0, ByVal 0&
  MsgBox "Программа уже запущена!", vbCritical
  End
  Exit Sub
 Else
  Me.Caption = strCaption
  cmdBeOrNotToBe.Caption = "MyProgramIsBe"
 End If

End Sub

Private Sub cmdBeOrNotToBe_Click()
 Me.Show
 Me.WindowState = vbMaximized
End Sub

Private Sub ActivateWindow(h As Long)
 If h Then
  If IsIconic(h) Then
   Call ShowWindow(h, SW_RESTORE)
  End If
  Call SetForegroundWindow(h)
 Else
  Exit Sub
 End If
End Sub
Обратите внимание
Язык Visual Basic 6.0 является устаревшим. Многие примеры, размещенные на нашем сайте, были созданы еще во времена Windows 98 и могут не работать в современных операционных системах.
Если у вас возникнут какие-либо проблемы или вопросы, вы можете обратиться за помощью на наш форум.
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики