![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Контроль работы приложения на уд. компе [D7]
novice © (2006-06-05 10:51:00)Даже не знаю, с какой стороны подойти к этому вопросу, может и постановка его изначально неверна... Суть такова: на n машинах в сети работает некая программа (моя). Юзеры очень не хотят, чтобы она работала и стараются ее убить (на 9х виндах - легко). Недопустить этого, на мой взгляд, невозможно, но проконтролировать хотелось бы. Как я это представляю: моя программа слушает некий порт. Со своей машины я на этот порт засылаю пакет (тут пока не понятно, считать ли приход на этот порт любого пакета успехом и тогда не заморачиваться его чтением, или же критичным установить содержание), программа на него отвечает (или нет). Если ответа нет, но пинг проходит = программу "убили".
tButton (2006-06-06 16:40:00) [1]
> в onCloseQuery : Canclose=false;
>
> Но в любом случае и тот и другой код убивается kill'ом
не катит.
OnCloseQuery не обрабатывается =)
получается такой halt(0) извне =)
tesseract (2006-06-06 14:03:00) [2]
> срабатывает сигнализация - идёшь и убиваешь юзераможно ещё
> в onClose dead loop типа for i:=0 to -1 do записатьтогда
> юзер сам прибежит
в onCloseQuery : Canclose=false;
Но в любом случае и тот и другой код убивается kill'ом
tButton (2006-06-06 13:48:00) [3]
> 2. for i:=0 to -1 do в любом случае не работает :)
> писать надо while true do ;
ляпнул первое что в голову пришло =)
onCloseQuery тоже не сработает?
или убиение процесса происходит без посылки приложению сообщений?
Dmitrij_K (2006-06-06 12:00:00) [4]
> можно ещё в onClose dead loop типа for i:=0 to -1 do записать
1. юзер убивает сразу процес, и онклоз не сработает
2. for i:=0 to -1 doв любом случае не работает :)
писать надо while true do ;
tButton (2006-06-06 11:46:00) [5]
> Идея не в сигнализации, а в неубиваемости.
срабатывает сигнализация - идёшь и убиваешь юзера
можно ещё в onClose dead loop типа for i:=0 to -1 do записать
тогда юзер сам прибежит
Dmitrij_K (2006-06-06 10:38:00) [6]См [38] пункт 2
Отличное предложение, не каждый юзверь сможет найти запись в реестре
tesseract (2006-06-06 09:51:00) [7]
> tButton © (06.06.06 09:36) [46]
Идея не в сигнализации, а в неубиваемости.
tButton (2006-06-06 09:36:00) [8]вшиваешь в прогу клиент-сокет
в свою - сервер-сокет
при запуске клиент коннектится к серверу
при терминации проги клиент дисконнектится
ловим на сервере onClientDisconnect и врубаем сигнализацию
Пусик (2006-06-05 23:10:00) [9]
> novice (05.06.06 11:26) [2]
>
> Ну, во-первых, это уже повод для административных мер, во-
> вторых, повод для сканирования (тем или иным способом)
> "уличенного" компьютера
Для определения "убивания" программы достаточно простой связи по сокетам. При обрыве связи уже можно принимать административные меры.
tesseract (2006-06-05 21:35:00) [10]
> Я и не путаю я так одну прогу назвала и втюхала ее к юзеру
> он не смог ее закрыть, причем она не мешала уже запущенному
> lsass.
Втюхала и нормально сделала - вещи разные. И не путай Юзера и Windows.
Сколько нибудь продвинутый запустит msconfig и все твои хитрости всплывут.
> К сожалению, вынужден оставить форум - пора домой. Если
> что, я еще вернусь, не против?
Рад был посодействовать теме, а насчёт перекрытия explorer - подумай :-)
novice (2006-06-05 17:16:00) [11]
> Для меня Win9k - прошлое и слава богу успешно забытое
Win9k = Win9000 - не дай бог дожить :)
К сожалению, вынужден оставить форум - пора домой. Если что, я еще вернусь, не против?
novice (2006-06-05 17:08:00) [12]
> почему бы просто не скрыть программу из task manager-а?
> не знаешь - не убъёшь. И при закрытии заново прописываться
> в авторан.
Возможно, возможно... Пока предвижу одну сложность - если мне самому надо, чтобы приложение было закрыто, напр., для обновления. Но тут можно выкрутиться: проверять по таймеру наличие "стопового" файла, как только появился - halt.
Topper (2006-06-05 17:02:00) [13]
> в 98 такого ещё нет.
>
> почему бы просто не скрыть программу из task manager-а?
> не знаешь - не убъёшь. И при закрытии заново прописываться
> в авторан.
в 98 при умирании оболочки она перезапускалась сама, там такое есть
один скачает неродной диспетчер процессов и убъет все равно, если только не будет реализации на уровне перехвата апи функций, но это уже совсем другая тема
Elen (2006-06-05 16:59:00) [14]
> Не путай сервисы с приложениями, и/или драйверами.
Я и не путаю я так одну прогу назвала и втюхала ее к юзеру он не смог ее закрыть, причем она не мешала уже запущенному lsass.
> Это прокатит в NT, но не в 98.
Для меня Win9k - прошлое и слава богу успешно забытое
tesseract (2006-06-05 16:58:00) [15]
> кроме того шел обычно сам перезапускается
в 98 такого ещё нет.
почему бы просто не скрыть программу из task manager-а? не знаешь - не убъёшь. И при закрытии заново прописываться в авторан.
Topper (2006-06-05 16:54:00) [16]Если я правльно понял, то проблема в том что твою классную программу убивают, а ты бы этого не хотел, так сделай
Идея 1
Сделай в программе по таймеру счетчик своих процессов в системе и если он меньше 2 или 3х, то запуск самого себя до этого количества.
Идея 2
Размести код в dll и внедри его в explorer.exe - юзеры без шела не станут работать, или вообще не поймут что его нужно убивать, кроме того шел обычно сам перезапускается
tesseract (2006-06-05 16:54:00) [17]
> То есть?
Не путай сервисы с приложениями, и/или драйверами.
Предупреждение с криком "Стёрли/заменили важный файл" появилась в XP.
Elen (2006-06-05 16:51:00) [18]
> народ , орехи что-то валом пошли......
То есть?
tesseract (2006-06-05 16:51:00) [19]novice, а отруби ка ты им explorer. Как в клубах - нетути ничего, только рабочую папку оставь.
novice (2006-06-05 16:48:00) [20]Еще раз повторю для вновь присоединившихся: нет проблем с w2k и XP. Есть проблемы с Вынь98.