Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
 Аватар для aptos
13 / 13 / 3
Регистрация: 04.06.2013
Сообщений: 156

Запрет одновременной работы двух копий приложения

19.09.2014, 19:35. Показов 3285. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все, собственно, в вопросе. Нужно запретить запуск второй копии скомпилированного в VB6 .exe файла. Как это можно сделать? Желательно попроще. Спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2014, 19:35
Ответы с готовыми решениями:

При запуске большого количества копий приложения ошибка Out Of Memory (VB 6)
4 гб опертаивки каждая копи жрет примерно 1 мегабайт после запуска 70 копий выходит ошибка out of memory памяти хватает свободно Как...

Запрет выполнения нескольких копий приложения
Здравствуйте. Необходимо запретить одновременное выполнение нескольких копий приложения. Что бы при запуске приложение проверяло,...

Registering an Application to a URI Scheme. Запрет запуска нескольких копий приложения
Ребят есть проблема, сделал всё как тут сказано...

7
Native x86
Эксперт Hardware
 Аватар для quwy
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
19.09.2014, 19:41
Цитата Сообщение от aptos Посмотреть сообщение
Желательно попроще.
Создавать файл при запуске, удалять при завершении. Если файл при запуске уже есть, завершаться.

Чтобы избежать ложного наличия файла при принудительном/аварийном завершении работы программы, создавать его средствами WinAPI с флагом FILE_FLAG_DELETE_ON_CLOSE.
0
 Аватар для aptos
13 / 13 / 3
Регистрация: 04.06.2013
Сообщений: 156
19.09.2014, 19:52  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
Создавать файл при запуске, удалять при завершении. Если файл при запуске уже есть, завершаться.

Чтобы избежать ложного наличия файла при принудительном/аварийном завершении работы программы, создавать его средствами WinAPI с флагом FILE_FLAG_DELETE_ON_CLOSE.
Если говорите про WinAPI, то и сами функции сразу называйте.
0
Native x86
Эксперт Hardware
 Аватар для quwy
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
19.09.2014, 19:55
Цитата Сообщение от aptos Посмотреть сообщение
Если говорите про WinAPI, то и сами функции сразу называйте.
CreateFile
1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
19.09.2014, 20:00
Лучший ответ Сообщение было отмечено aptos как решение

Решение

Самый простой App.PrevInstance, но это свойство актуально только на момент запуска приложения и привязано к имени файла. Самый правильный способ - это создать именованый объект ядра (например событие) и проверять его. Например:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Explicit
 
Private Declare Function CreateEvent Lib "kernel32" Alias "CreateEventW" (lpEventAttributes As Any, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
 
Private Const ERROR_ALREADY_EXISTS As Long = 183&
 
Dim hEvent As Long
 
Private Sub Form_Load()
    hEvent = CreateEvent(ByVal 0&, False, 0, StrPtr(App.Title))
    If hEvent Then
        If Err.LastDllError = ERROR_ALREADY_EXISTS Then
            MsgBox "Ïðèëîæåíèå óæå çàïóùåíî"
        Else
            MsgBox "Ýòî ïåðâûé ýêçåìïëÿð"
        End If
    Else
        ' Ïðîèçîøëà îøèáêà
        End
    End If
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    CloseHandle hEvent
End Sub
5
 Аватар для aptos
13 / 13 / 3
Регистрация: 04.06.2013
Сообщений: 156
19.09.2014, 20:19  [ТС]
Спасибо! То, что нужно!
0
0 / 0 / 1
Регистрация: 12.06.2010
Сообщений: 29
30.06.2020, 09:06
Подскажите, где в коде то самое приложение, дубликат которого нужно закрыть?

Добавлено через 1 час 24 минуты
выдает ошибку при запуске кода (*.VBS) в 3 строке символ 17!
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.06.2020, 09:52
Цитата Сообщение от larystyle Посмотреть сообщение
Подскажите, где в коде то самое приложение, дубликат которого нужно закрыть?
Этот код и есть приложение. Закрывает сам себя, если уже запущен экземпляр.
Цитата Сообщение от larystyle Посмотреть сообщение
при запуске кода (*.VBS)
Это вообще не в тему - VBS это скрипт, а не приложение. Да и не будет работать с win API в таком виде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2020, 09:52
Помогаю со студенческими работами здесь

Одновременной удаление записей из базы из двух экземпляров приложения
Всем доброго времени суток! Столкнулась с такой проблемой: открыты два экземпляра приложения C#.Net. В одном экземпляре удаляется запись...

Как не допустить одновременного запуска двух копий FireMonkey приложения?
Подскажите пожалуйста!)

Запрет одновременной авторизации
Здравствуйте! Как можно запретить одновременную авторизацию на сайте под одной учетной записью с двух разных компьютеров (браузеров)?...

Запрет одновременной авторизации одного пользователя
На сайте есть закрытый платный контент только для зарегистрированных пользователей. Нужно сделать так что бы один пользователь одновременно...

Запрет одновременного запуска приложения на двух PC
Всем доброго, уважаемые! Задался таким вопросом - как можно предотвратить одновременный запуск приложения на двух абсолютно разных PC,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru