Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
ВнизЗащитить программу от множественного запуска по сети? Найти похожие ветки
← →
Борис (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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c