Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.12;
Скачать: CL | DM;

Вниз

Защитить программу от множественного запуска по сети?   Найти похожие ветки 

 
Борис ©   (2002-09-02 09:22) [0]

Здравствуйте!

Как защитить программу от множественного запуска по сети?
Т.е. есть программа (небольшая бухгалтерская, с БД Paradox). Её могут использовать как на тачке, где она стоит, так и просто запустив из расшаренной папки!

Вопрос: как защитить прогу, чтобы мог работать только один человек, либо по сети, либо локально.

Мое решение (не самое разумное): При запуске прогарммы создавать определенный файл, и проверять, если он есть, то прога уже запущена. При закрытии программы удалять файл. Только одна лажа - если программа завершила работу некорректно, то придется удалять файл в ручную. У кого какие идеи?


 
Anatoly Podgoretsky ©   (2002-09-02 09:29) [1]

При таком раскладе сервер и опрос по типу пинг


 
Внук ©   (2002-09-02 09:35) [2]

Думаю, можно встроить в программу маленький DCOM-объект, который будет отслеживать количество запусков


 
Борис ©   (2002-09-02 10:55) [3]

to Anatoly Podgoretsky
Дело в том, что серверов нет.
Т.е. если локально программа запущена, по сети ни-ни.
Если по сети запущена, локально ни-ни. Т.Е. одновременно с программой может работать только один пользователь


 
Anatoly Podgoretsky ©   (2002-09-02 10:58) [4]

Не сервер, а сервис, извиняюсь


 
Внук ©   (2002-09-02 10:59) [5]

Однако, не обратил внимания на тип ОС, тогда с DCOM лучше не связываться


 
Skier ©   (2002-09-02 11:05) [6]

>Борис
IMHO,твой подход вполне нормальный, только нужно в реестре
сделать ещё и флаг корректного завершения...


 
Борис ©   (2002-09-02 11:11) [7]

Skier
Спасибо за помощь! Только вот если некорректо завершилось на локальной - это нормально, а вот если на удаленной, и до запуска уже запустили локальную?

В общем я еще буду думать над этим вопросом.


 
iva ©   (2002-09-02 11:15) [8]

попробуй при запуске открывать эксклюзивно к.н. таблицу, если открыть удалось - значит ты один, если нет ...


 
Skier ©   (2002-09-02 11:18) [9]

>Борис

> Только вот если некорректо завершилось на локальной - это
> нормально, а вот если на удаленной, и до запуска уже запустили
> локальную?


Что значит некорректо завершилось на удаленной и до запуска уже запустили локальную !?

Насколько я понял программа должна запускатся один раз,
т.е. при попытке запустить её второй раз "генерится" - отказ.
Или я что-то не так понял ?



 
Борис ©   (2002-09-02 11:42) [10]

to Skier,
С прогой должны работать либо чел с той тачки, на которой она установлена, либо кто-то один из сети (просто запуск программы из расшареной папки).



 
Araris   (2002-09-02 11:55) [11]

Я делал так :
1. При старте программа пытается открыть для чтения/записи некий файл (даже нулевой длины) в том же подкаталоге, откуда ее запустили.
2. Если открылся - держим его открытым до конца (нормального выхода, или аварийного) работы.
3. Если не открылся - значит...


 
Anatoly Podgoretsky ©   (2002-09-02 12:06) [12]

Вариант с файлом точно также чреват как и Борис © (02.09.02 09:22), вариант с сервисом более щадящий


 
Turalyon ©   (2002-09-02 13:20) [13]

>Борис © (02.09.02 09:22)
А не проще ли будет просто проверять при старте программы имя компьютера в сети, и если оно не то которое нужно... не запускаться...?
GetComputerName


 
dim- ©   (2002-09-02 22:56) [14]

Народ, зачем извращатся, здесь уже было, открываешь таблици монопольно, если ошибка то значит уже кто-то работает.



Страницы: 1 вся ветка

Текущий архив: 2002.09.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-35917
Bboy
2002-08-16 15:58
2002.09.12
Как вы думаете?


1-35652
Cr@sh
2002-09-01 10:36
2002.09.12
Только для настоящих мастеров:сохранение Битмапа и Лайнс в оди...


3-35531
michael_b
2002-08-20 16:39
2002.09.12
как загрузить все значения некоторого поля бд в combobox.items


7-35925
HM[2m]
2002-07-03 14:42
2002.09.12
Выключение Windows 2000


4-35941
Ich Hasse
2002-07-20 22:18
2002.09.12
Как выставить в чужом окне AlphaBlendValue???