|
|
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
Надо отслеживать повторный запуск приложения ( Акс97 ): 1. Задача минимум: Отследить повторный запуск mdb (клиентская часть) на компьютере - если есть дубль, то запретить открытие (закрыть) и передать фокус уже открытому 2. Задача средняя: Отследить попытку доступа к mdb на сети (типа данные) доменным пользователем т.е. проверять, а не прилинкован ли этот пользователь к данным уже (например с другого компика) Примечание: Естественно, данная задача имеет смысл при решенной первой (так сказать использование в комплексе) 3. Задача максимум: Почти то же самое, что и 2, только определять не по доменному пользователю, а по "внутреннему" (заведенному в базе) грубо говоря, по пользователю, который в табле users имее id = ? (Следует учесть тот факт, что Акс может быть закрыт не корректно) Примечание: тоже в комплексе с 1 PS: Не жду готовых решений, но буду рад любым идеям :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 13:39:11 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
хм... а если сделать таблицу, user computer working при открытии базы туда заносить данные, при выходе - убирать (ну или 0 и 1 ставить в working) при подключении проверять, закрывать или разрешать... вот только как переключить фокус.. надо наверное в направлении API копать хм... при подключении можно еще в эту таблицу сбрасывать hwnd окна... а вот с некорректным закрытием... пока идей нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 13:53:44 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
kedzoа вот с некорректным закрытием... пока идей нет Дать админу возможность редактировать эту таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 13:58:40 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
Согласен с предыдущим оратором Про некорректное закрытие: Может, пущай невидимая форма(которая так и так нужна, чтоб спрашивать: Вы в натуре хотите выйти? при нажатии на крестик.) по таймеру пишет Now в ту таблицу. И прочитав эту таблицу все будит понятно, наверное. Можно при желании когда кто и скока работал получить:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:00:40 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
>Предыдущим оратором в смысле с кедзо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:01:45 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
Пишем виндовый сервис, который отслеживает, запушена ли наше приложение, т.е. при запуске приложения передавать сервису идентификатор процесса, сервис опрашивает по таймеру процесс, если не находит, сбрасывает значение свой переменной. Зато можно отследить всё:) Правда, придётся попариться - но игра стоит свеч:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:05:23 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
Под некорректным закрытием имелось ввиду отключение питания (во всем корпусе) Саныч, конечно хорошо, но 20 баз в каждой по 20-30 челов - админ не утра__ется все это чистить после включения электричества? 2 Hummer Для моей задачи (№1) я знаю способ и попроще :) Например ldb файл просмотреть :) Но он мне не очень нравиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:16:48 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
paparomeНапример ldb файл просмотреть :) Но он мне не очень нравиться. у меня были проблемы, когда юзер выходил из базы, а ldb показывал, что он там есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:22:14 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
kedzo paparomeНапример ldb файл просмотреть :) Но он мне не очень нравиться. у меня были проблемы, когда юзер выходил из базы, а ldb показывал, что он там есть. Бывает такое - потому этот метод мне и не сильно нравиться Хотя есть предположение, что если даже ldb остался, то при запущеном приложении он уже поправился (т.к. я намерен это проверять на этапе запуска mdb, т.е. она уже запущена) (могу и ошибаться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:27:58 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
хм... отключение электричества... сделать маленькую админскую базу (если у админа не стоит ИБП, и он тоже вырубается вместе со всеми...) поставить в автозагрузку - при запуске эта база всем юзерам сбрасывает поле working в 0. и закрывается. да... ну или на другой какой комп, который вырубается вместе со всеми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:41:11 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
или если стоит ИБП, может можно по событию переход на аккумулятор (в проге к этому ИБП) запустить эту базу?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 14:43:31 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
А я делаю так: При открытии стартовой формы клиентской части: ' ' Проверка количества одновременно запущенных копий программы ' Const ДЛИНА_LDB_ДЛЯ_1_РАБОТАЮЩЕЙ_КОПИИ_ПРОГРАММЫ = 64 Dim strPath As String Dim SIZE As Long strPath = CodeDb().Name strPath = Mid(strPath, 1, InStr(1, strPath, ".") - 1) & ".ldb" On Error GoTo выход ' если в директории НЕТ файла LDB SIZE = FileLen(strPath) ' Возвращает длину файла (в байтах). ' MsgBox "Длина LDB = " & Size '**** ОТЛАДКА **** If SIZE > ДЛИНА_LDB_ДЛЯ_1_РАБОТАЮЩЕЙ_КОПИИ_ПРОГРАММЫ Then ' попытка запустить 2 копию ! АВАРИЙНЫЙ_ВЫХОД = True DoCmd.Quit acQuitSaveNone End If выход: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 15:02:32 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
kedzoхм... отключение электричества... сделать маленькую админскую базу (если у админа не стоит ИБП, и он тоже вырубается вместе со всеми...) поставить в автозагрузку - при запуске эта база всем юзерам сбрасывает поле working в 0. и закрывается. да... ну или на другой какой комп, который вырубается вместе со всеми. Хм. Вариант конечно :) Но ведь в жизни так не бывает :( Допустим = свет глюканул не у всех, а пользователи по офису летают как незнамо кто и отслеживать, кто на какой фазе сидит - не есть руль :( + этож не единственный вариант некоректного выключения А если пользователь ресет даванул? Он звонит админу - пита пусти меня не путевого? Тоже конечно выход - пока число пользователей не критично :( PS: Это все словоблудство однако :) ЗЫЫ: Принял идеи к размышлению - но можно продолжать обсуждение, ибо задача не есть решена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 15:03:50 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
автор 2. Задача средняя: Отследить попытку доступа к mdb на сети (типа данные) доменным пользователем т.е. проверять, а не прилинкован ли этот пользователь к данным уже (например с другого компика на сервере Microsoft решается shell > net file увидишь путь и Login а по net file id - много чего ищо для прикола написал и выложил на конфу систему мониторинга открытых mdb файлов /topic/99452&hl= можешь модернизировать и соответсвенно интегрировать в код client-mdb обращение по чтению к "серверной таблице" - каковую формирует процесс на сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 15:06:50 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
paparome kedzoхм... отключение электричества... сделать маленькую админскую базу (если у админа не стоит ИБП, и он тоже вырубается вместе со всеми...) поставить в автозагрузку - при запуске эта база всем юзерам сбрасывает поле working в 0. и закрывается. да... ну или на другой какой комп, который вырубается вместе со всеми. Хм. Вариант конечно :) Но ведь в жизни так не бывает :( Допустим = свет глюканул не у всех, а пользователи по офису летают как незнамо кто и отслеживать, кто на какой фазе сидит - не есть руль :( + этож не единственный вариант некоректного выключения А если пользователь ресет даванул? Он звонит админу - пита пусти меня не путевого? Тоже конечно выход - пока число пользователей не критично :( PS: Это все словоблудство однако :) ЗЫЫ: Принял идеи к размышлению - но можно продолжать обсуждение, ибо задача не есть решена. полностью согласен. это так... размышления... :) у меня комп на полу раньше стоял (на старой работе), а ресет был в точности на уровне ножки от вертящегося стула :) и периодически происходила неожиданная перезагрузка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 15:11:45 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
2 Shuhard Спа за идею - буду разбираться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 15:53:06 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
Может я не в тему, но по п.1(запрет повторного открытия) приведенная конструкция работает у меня давно и в неск. программах: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 16:12:51 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
2 АндрейК Спа - посмотрю Это уже интерестнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 16:43:56 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
paparome Следует учесть тот факт, что Акс может быть закрыт не корректно в таблицу с полями: UserID, StartUpTime, LastUpdateTime, LogoffTime прописывается время запуска и выхода, а также раз в минуту или в пол минуты по таймеру проставляется текущее время в поле LastUpdateTime. И тогда с точностью до интервала таймера можем сказать кто в базе, кто вышел корректно и кто аварийно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2004, 23:55:49 |
|
||
|
повторный запуск приложения
|
|||
|---|---|---|---|
|
#18+
http://www.hiprog.com/forum/forum.asp?action=show&id=2&messid=47528&fullview=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2004, 01:02:15 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=45&tid=1673276]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
65ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 328ms |

| 0 / 0 |
