Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-35923
anton_private
2002-06-07 15:57
2002.09.12
Как зарегистрить ActiveX компонет в runtime?


6-35843
Свой
2002-06-28 19:48
2002.09.12
Почта


1-35677
Старик
2002-09-02 11:55
2002.09.12
DLL


7-35930
Pavel_S
2002-07-02 13:57
2002.09.12
Доступ к жесткому диску


14-35912
IgorK
2002-08-19 16:00
2002.09.12
Win2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский