Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.12.2011, 19:50
Unitay Unitay вне форума
Прохожий
 
Регистрация: 06.02.2009
Сообщения: 2
Репутация: 10
По умолчанию Запретить запуск второго экземпляра программы для ВСЕХ пользователей

Здравствуйте, помогите справиться с ситуацией. Есть комп на котором крутится MySQL база, отдельно запускается моя программка которая собирает и пишет в базу определенные данные, эта программка дабавлена в автозагрузку пользователя который имеет расширенные права. На комп переодически удаленно (по RDP) подключаются люди под профилем пользователя с расширенными правами, программа из автозагрузки запускается и обновляет данные. И бывает что люди заходят одновременно с разных машин, вследствии чего программа запускается несколько раз - отдельно в каждом сеансе. Из-за этого в базу данные записываются дважды. Казалось бы - можно убрать из автозагрузки, но ситуация может легко повториться. И собственно вопрос: как проверить запущен ли экземпляр моего приложения в других сеансах? пробовал через атомы и мьютексы не работает, подскажите пожалуйста как правильно это сделать?
следующие статьи не помогли:
only_one_app_instance
only_one_app_instance2
one_instance11
и этот сборник тоже не помог
Ответить с цитированием
  #2  
Старый 15.12.2011, 21:40
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Проще наверное в данном случае запустить программу один раз и никаких автозагрузок от пользователя.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 16.12.2011, 11:19
Unitay Unitay вне форума
Прохожий
 
Регистрация: 06.02.2009
Сообщения: 2
Репутация: 10
По умолчанию

Проблему решил. Сделал так:
на Form.Create подвесил
LockFile := OpenFile(pChar('LockFile.ini'), OfStruct, OF_CREATE OR OF_READWRITE OR OF_SHARE_EXCLUSIVE);
на Form.Close : CloseHandle(LockFile);

Что-то сразу голова не сработала.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025