Как я могу сделать программу, это невозможно быть уничтоженным в Windows?

<% if flash[:notice] %>
  <div class="notification is-primary global-notification">
    <p class="notice"><%= notice %></p>
  </div>
<% end %>

<% if flash[:alert] %>
  <div class="notification is-danger global-notification">
    <p class="alert"><%= alert %></p>
  </div>
<% end %>
6
задан 3 revs, 2 users 73% 28 May 2009 в 17:53
поделиться

16 ответов

То, о чем вы просите, имеет последствия, выходящие далеко за рамки того, что вас просят выполнить. Например, если процесс не может быть остановлен, как Windows может нормально завершиться?

Я не знаю вашего начальника, поэтому вам придется самостоятельно оценить его уровень понимания. Если бы пользователь / менеджер попросил меня об этом, мне пришлось бы исследовать глубже, чтобы понять, что они на самом деле имеют в виду. Я подозреваю, что ваши пользователи хотят, чтобы поведение закрытия по умолчанию сворачивалось в область уведомлений, а не выходило из программы, как и в большинстве клиентов мгновенных сообщений, вместо того, чтобы вообще когда-либо закрывать программу.

40
ответ дан 8 December 2019 в 02:00
поделиться

Вам придется ограничить их права пользователей, пока они не смогут убить процессы.

3
ответ дан 8 December 2019 в 02:00
поделиться

Это не только звучит как плохая идея (это оскорбительно для ваших пользователей), но и вы не сможете помешать пользователям убить сам процесс.

Вам придется запустить два отдельных процесса - один для запуска приложения, а второй для мониторинга первого и перезапуска при необходимости.

5
ответ дан 8 December 2019 в 02:00
поделиться

Похоже на этот

1
ответ дан 8 December 2019 в 02:00
поделиться

Я согласен с этим это ужасная идея .

Сказав это, вы создадите две программы (возможно, службы Windows ). Обе программы будут контролировать друг друга, а также работать как клиент. Вам потребуется общая память , к которой оба процесса могут получить доступ, чтобы синхронизировать, какой клиент обрабатывает входящие запросы.

0
ответ дан 8 December 2019 в 02:00
поделиться

Вы можете перехватить большинство сигналов с помощью обработчиков, за исключением SIGKILL.

Вы можете создать оконный процесс сторожевого пса, который возрождает ваше приложение в случае его завершения.

Если хотите, вы можете назвать этот процесс как-нибудь очень безобидным, похожим на «sysmon», чтобы он не выглядел таким отрывочным.

Я действительно надеюсь, что это требование для работы, а не ваш способ вызвать падение человека.

1
ответ дан 8 December 2019 в 02:00
поделиться

Разве это не должно контролироваться вашей группой рабочих столов? У нас есть ПК в нескольких киосках, которые позволяют сотрудникам проверять личную электронную почту и прочее (Gmail, Yahoo, Hotmail и т. Д.), И разрешения пользователей на этих ПК не позволяют пользователям убивать процессы.

Вид раздражает, если IE блокируется, но я могу понять причину.

1
ответ дан 8 December 2019 в 02:00
поделиться

звучит так, будто у вас есть доступ к клиенту jabber. Можете ли вы сделать опрос в отдельном месте с указанием его статуса и времени запуска? Вы не отключаете возможность убить его ... но, по крайней мере, вы можете отслеживать его и отвечать оттуда.

1
ответ дан 8 December 2019 в 02:00
поделиться

Управляйте им с помощью службы Windows. Легко сделать на C #. Заблокируйте разрешения, чтобы остановить службу.

Примечание: я думаю, что ответы «это невозможно / ужасно / зло», возможно, не соответствуют вашей сути. Служба специально разработана для «продолжения работы», о чем вы и спрашиваете.

3
ответ дан 8 December 2019 в 02:00
поделиться

Вы не можете. Вы можете сделать это сложнее, но не невозможно. См. Гонка вооружений между программами и пользователями .

4
ответ дан 8 December 2019 в 02:00
поделиться

Я думаю, вам следует спросить разработчика требований что они подразумевают под приложением, которое невозможно «убить». Что они имеют в виду под словом «убить»?

  • Запрещение пользователю закрывать свою программу.
    • Запретить стандартное использование кнопки X в окне?
    • Свернуть на панель задач?
    • Не разрешить им закрыть приложение в диспетчере задач?
  • Запретить ОС закрыть свою программу

Требование достаточно двусмысленно, чтобы я поговорил с разработчиком требований / руководителем, чтобы лучше понять, чего они хотят.

7
ответ дан 8 December 2019 в 02:00
поделиться

Поскольку это внутренняя служба, вы можете создать отдельную службу Windows, которая отслеживает активные процессы. Если процесс вашего jabber-клиента отсутствует, вы можете просто перезапустить его.

Затем используйте разрешения, чтобы запретить им доступ к службе Windows, чтобы отключить ее.

13
ответ дан 8 December 2019 в 02:00
поделиться

Похоже на вирус.

18
ответ дан 8 December 2019 в 02:00
поделиться

позвольте мне сначала сказать, что это ужасная идея.

но ... если вы должны это сделать, то, как я вижу, вредоносное программное обеспечение и спамогонщики делают это, чтобы создать три запущенных процессов, один из которых является основным, а два других будут отслеживать и перезапускать любой убитый процесс. среднему пользователю очень сложно убить 3 процесса одновременно.

26
ответ дан 8 December 2019 в 02:00
поделиться

Что еще более важно, ПОЧЕМУ вы переписываете jabber-клиент, когда это так много хороших, как Миранда и Пиджин уже существуют? Если это для ведения журнала, вы можете легко сделать эту серверную часть на своем сервере Jabber, не полагаясь на клиентов.

Если это необходимо для предотвращения других служб обмена мгновенными сообщениями, надежные правила брандмауэра помогут остановить это (но это не помешает супер-гениям, которые будут проксировать AIM + Gtalk через https на свои домашние серверы).

2
ответ дан 8 December 2019 в 02:00
поделиться

Обещать приостановить пользователей, которые убивают ваш регистратор трафика Jabber-клиент?

1
ответ дан 8 December 2019 в 02:00
поделиться