На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> автоматическое восстановление , размышления
    Пишу защитную програмулинку, по типу антивируса. хочу что бы она так же как антивирус там NOD32 или Касперский после завершения процеса через диспетчер задач-восстанавливалась.
    Есть идея запускать службу,которая будет проверять работает ли мой процесс,и если нет, то запускать его, только вот с реализацией такой службы слабовато.примеры служб смотрел, но мне туда ведь надо таймер впаять. Может создавать динамически его там?

    как сделать лучше?
      не надо таймер, WaitForSingleObject(...) вызванная с дескриптором процесса ждет его завершения.
        ARR
        ?
          А что будет мешать завершить такую службу. На сколько я помню каспера или нод вообще нельзя выгрузить принудительно.

          Добавлено
          ну в смысле общеизвестными методами ;)
            Неубиваемую программу делать нельзя в принципе.
            А вдруг в ней ошибка и она, взбесившись, начала все диски поочереди форматировать ? :)
            Даже Microsoft, не делает свои процессы неубиваемыми (в т.ч. и жизненно важные для системы).
            Согласна, некоторые (в т.ч и известные компании) мнят себя пупом земли, считают,
            что они непогрешимы (нет багов в их творениях), пользователь купил компьютер только ради счастья
            поставить их продукт и начинают создавать "неубиваемые" процессы и т.д. и т.п.
            Но не стоит на них равняться.
            Гораздо лучше сделать "снимаемую" программу, но только с согласия пользователя.
            Кстати, данная задачка будет посложнее и поинтереснее предыдущей ;)
              Shaggyсмысл ясен но среализацией под делфи не особо, не подскажеш как это под делфями будет выглядеть?

              P.O.D а есть другие варианты? я просто заметил что у нода висят службы, вот и сделал такие выводы...

              Riply кто говорит о неубиваемости? А Как же стандартный uninstall?? нужно что бы просто кто попало движением 2-х пальцев не мог грохнуть процесс.
                Такие вещи делаются вообще-то настройкой прав доступа (службу обычный пользователь остановить при всём желании не сможет). В крайнем случае - ACL списков (например).

                Более криво можно два процесса следящие друг за другом (необязательно службу). Один закрылся - второй его перезапускает. Второй закрылся - первый его перезапускает. В Vista даже есть API специальное: Application Recovery and Restart, предназначенное для перезапуска программ (не служб - у них для этого есть SCM) в случае вылета по необработанному исключению.
                  упс! проглядел: Minimum supported client Windows Vista
                    CodeMonkeyнасколько я понял из описания,то это от ctrl+alt+delete не спасёт
                    Цитата

                    However there are some problems:
                    This code does not prevent the user from reverting the process DACL to the original state. An owner of the process can always change the DACL even if she is not listed in it. So the code just prevents a beginner from closing the application forcefully.
                    Any user with the DEBUG privilege can open the process with full access using OpenProcess. The taskmanager uses this way to terminate a process – if TaskManager is started with administrative rights.
                      Цитата -TOXA- @
                      The taskmanager uses this way to terminate a process – if TaskManager is started with administrative rights.

                      Если у меня есть администраторские привилегии, мне ничто не может помешать получить DEBUG привилегию, подключиться к процессу и перевести EIP на ExitProcess(0) ;) Даже TerminateProcess можно не вызывать.

                      Вам про это и твердят: если вам нужна защита от "кого попало", не давайте этим "кто попало" административных учёток. Пусть работают под пользователем.
                        CodeMonkey да причём тут это? если уж на то пошло, то можно просто запретить запуск таскменеджера. но я то пишу програмный продукт, а не настраиваю виндовс тому учётку админа, а тому учётку урезанную...... не то это всё.
                          -TOXA-, не испоганив систему, от админа защититься невозможно.
                          Поэтому, imho, CodeMonkey и предлагает работу с "учетками"
                            Поганить ничего не надо,да и защищатся от админа тоже. как же Антивири? у них получается же восстановится после убивания процесса.

                            WaitForSingleObject(...) вызывает зависание сервиса,пока процесс не завершится :( может лучше всё таки Timer1.create(self), а там гонять проверку работает ил процесс?
                              Цитата -TOXA- @
                              как же Антивири?

                              А вы драйвер горазды писать? Не занимайтесь извращениями.

                              Добавлено
                              Вам же подсказали идею: два процесса, следящие друг за другом. В чём проблема?
                                Цитата -TOXA- @
                                WaitForSingleObject(...) вызывает зависание сервиса,пока процесс не завершится

                                В потоке следи. А сервис пускай занимается своим непосредственным делом - периодически уведомляет SCM. :D
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,3732 ]   [ 15 queries used ]   [ Generated: 19.05.24, 00:39 GMT ]