| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Запуск приложения из под сервиса? |
| Автор: mixan 18.12.2006, 02:12 |
| Доброе всем время суток! Задача такова, написал прогу по ограничению времени работы за компом для ребенка, назвал хитро, спрятал в винде под видом системной проги, запхнул в реестровый авторан, но ребенок продвинутый, и быстренько удалил с авторана. Попробовал написать сервис и из него запускать прогу при старте винды, но она как-то коряво запускается, некорректно, видно потому, что не загрузилась еще винда полностью. Пробовал заменить в реестре своей прогой запуск службы синхронизации времени, но что-то не вышла эта затея, имеется ли какая-либо возможность решить эту задачу? В принципе нашел предложения как-то что-то запускать из-под других сервисов, но написано недоступно для меня, не разобрался, может есть другие способы стартовать прогу при запуске винды скрыто или похитрому? Заранее благодарен за доступные объяснения! |
| Автор: Nicholas_S 18.12.2006, 03:48 |
| mixan, 1. нет ли возможности просто ограничить доступ ребенка стандартными средствами, в т.ч. к сервису 2. что делает программа ограничения времени? Почему нельзя включить функционал программы в сервис? 3. почему не запустить приложения ограничения времени после некоторого таймаута после запуска сервиса (если проблема в этом, конечно). |
| Автор: Snowy 18.12.2006, 11:12 |
| Забрать у ребёнка админские права и не изобретать велосипед. Как можно вообще пытаться ограничивать, оставляя права админа? А можно не ограничивать время работы. Просто логировать. Выработал недельный лимит - запредить вообще доступ к компьютеру. |
| Автор: Nicholas_S 18.12.2006, 11:45 | ||
Поверь, он выработает, и будет потом столько проблем после этой "переработки", что лучше сразу лимиты ставить, чтобы привыкал в будущем. По себе знаю. |
| Автор: mixan 18.12.2006, 15:18 |
| Спасибо за участие! Отвечаю: 1) Ребенок продвинутый, знает кое-что по хаку, потому узнать админский пароль для него труда не составит, такая прога есть у него...(работает) 2) Для включения функционала в сервис не хватает знаний об этой теме (а время поджимает, нужно что-то срочно делать 3) вот как бы это сделать, просто вписать sleep(...), корректно ли это будет работать? Наибольший интерес представляет возможность запуска моего приложения (или сервиса, а в нем приложения), путем подмены службы какой-нить (например синхронизации времени), нашел ее в реестре, подменил пути, но что-то не работает... |
| Автор: Nicholas_S 18.12.2006, 15:27 |
| mixan, какая операционка на компе? Не слышал чтобы пропатченную XP можно было сломать утилитой из-под пользовательского доступа... Если ребенок настолько продвинутый, что легко может получить администраторские права в системе, то, думаю, подменой сервиса его не остановить. Почему API не годится? |
| Автор: x77 18.12.2006, 16:11 |
| полчаса рисовал в пэйнтбраше мега-девайс. как оно работает. 1. комп подключен к пилоту, который подключен к розетке. 2. от гнезда пилота выведены два провода к электромагнитному реле, на якоре которого закреплена свеча. 3. рядом с реле расположена спиртовка таким образом, что при нажатом якоре (когда идёт ток) свеча поджигает спиртовку. 4. над спиртовкой проходит верёвка, к которой прикреплён очень острый нож (как вариант - заточенная лопата, но придётся, имхо утежелять). 5. под острым ножом проходит кабель питания. таким образом, когда чадо включает компьютер, на реле с пилота поступает ток, якорь опускается, спиртовка загорается, и начинает пережигать верёвку, к которой прикреплена заточенная лопата. когда верёвка окажется пережённой, лопата упадёт на кабель и компьютер выключится. таким образом, лимит времени, которое чадо может провести за компьютером, рассчитывается исходя из толщины верёвки и интенсивонсти горения (подбирается экспериментально). known issues. пока непонятно, каким образом тушить спиртовку, если чадо вдруг выключит компьютер до истечения лимита. но мы работаетм над этим |
| Автор: Nicholas_S 18.12.2006, 16:18 |
| x77, жжешь! Наверное оффтоп... |
| Автор: x77 18.12.2006, 16:27 |
| кстати, по сабжу. на месте юного хацкера я бы просто купил б/у-шный винт (или у друга ненужный одолжил), и всегда, когда мне надо - грузил систему с этого винта (манал я твои приблуды, папа). имхо, детей иногда полезно воспитывать ортодоксальными методами, а не программными |
| Автор: Nicholas_S 18.12.2006, 16:46 |
| x77, и самый ортодоксальный - это отсутствие компьютера с детства |
| Автор: Nicholas_S 18.12.2006, 20:14 |
| RA, если с этой стороны подходить - да |
| Автор: x77 18.12.2006, 20:16 |
| нужен комп с дактилоскопической кнопкой включения питания. как на некоторых ноутбуках. а лучше всего - бдительная бабушка с дробовиком в ближайшем крыжовнике, Kerberos нервно курит в углу. |
| Автор: bartram 19.12.2006, 14:57 |
| можно сделать блокировку на запуск определенных приложений с помощью глобальных хуков в системе ну запустил допустим ребенок игру....пошел таймер...2 часа протикало....и делаем TeminateProcess |
| Автор: x77 19.12.2006, 15:45 |
| bartram, это всё не имеет смысла, когда у чада есть физический доступ к системнику |
| Автор: RA 19.12.2006, 16:53 | ||
|
| Автор: Nicholas_S 19.12.2006, 17:10 |
| RA, я думаю твоя идея с LOL'ом тоже бессильна в данной ситуации |
| Автор: x77 19.12.2006, 17:17 |
| Nicholas_S, правильно |
| Автор: Nicholas_S 19.12.2006, 18:29 |
| x77, перетянул руки-ноги-шею - и считай уже не поиграть ни в какой Quake/CS |
| Автор: mixan 20.12.2006, 02:55 |
| Спасибо за ответы, хотя я и не имел в виду психологические и воспитательские аспекты Задача ведь простая на самом деле, ребенок не такой уж и хакер, просто знает о реестре немного ну и имеет некоторый арсенал утилиток (нарыл где-то). В общем нужно придумать как запускать прогу, но чтоб она не прописывалась в автозагрузках, начальная идея была подменить как-то службу синхронизации времени, о что-то не выходит, потом запускать из под процесса, но опять что-то возможно не то делаю... |
| Автор: Nicholas_S 20.12.2006, 03:26 |
| что ж, постебались - и хватит. mixan, вообщем, если действительно хочется запустить стороннее приложение, то: 1. открываем Delphi, создаем сервис 2. кладем TTimer, ставим нужный интервал (можно проверять время, можно ориентироваться по самому интервалу) 3. ставим опции сервиса как ServiceType = Win32 + Interactive = true + StartType = Boot. 4. инсталлируем сервис как serviceName.exe -install и видим в списке сервисов указанное для сервиса имя. Как подменить другой сервис... хм, кто знает? |