FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9145
Вход
Еще раз запущено ли приложение

Многие пользователи не задумываясь запускают по несколько копий программ. Что бывает нежелательно. В связи с этим мною была написана библиотечка (FLL),а другой пользователь Fox по имени Андрей (фамилию жалко не знаю) сделал DLL. Смысл данных изысканий состоит в том что функции возвращают список имен процессов и имена окон.


 
Прислал: Александр и Андрей   Категория: Разное

Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.823) Вложение [27.14]kb
Дополнения пользователей
Еще раз запущено ли приложение
[+][?]
And
15.10.01 14:34:55

Есть способ для ленивых: в папке проекта держим дбф, который открываем при запуске прораммы и
блокируем его FLOCK-ом. При повторном запуске, анализируем FLOCK и, если файл заблокирован, выдаем
сообщение об повторном запуске.
Дмитрий Орлов
15.10.01 17:35:11

Я таким способом и пользуюсь. Только не блокирую таблицу, а открываю в режиме EXCLUSIVE. Наличие
же запущенной копии - перехват ошибки с помощью ON ERROR
Sergi---1
08.11.01 08:48:52

а если проги в разных папках лежат а обращаются к одним и тем же базам 
тогда только виндузовыми средствами определять надо
sergey
05.01.04 10:29:00

Предпочитаю так:

DECLARE INTEGER CreateEvent  IN WIN32api INTEGER,INTEGER,integer,string @
DECLARE INTEGER OpenEvent  IN WIN32api INTEGER,integer,string @

IF openevent(1,0,"LIFE_PROG")<>0
	endwork("Программа уже запущена")
ENDIF
CREATEEVENT(0,0,0,"LIFE_PROG")

Вместо "LIFE_PROG" пишешь свою строку и все.

Пока exe-шник "жив" другой не запустится.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика