Как запретить программе закрываться

Нужно запретить пользователю выходить из программы «крестиком» Программа пишется под linux и windows. Под windows есть:

EnableMenuItem(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
А вот как с linux быть? P.S. Если выложите кроссплатформенный способ — будет вообще шикос!
Отслеживать
13.6k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака
задан 6 мая 2019 в 15:28
Alrott SlimRG Alrott SlimRG
1,567 8 8 серебряных знаков 33 33 бронзовых знака

Из консольной программы? о_О
6 мая 2019 в 15:34
Под линуксом, не прокатит) там есть xkill, я бы рофлил вас, нажимая рядом с крестиком)) лел
6 мая 2019 в 15:34
6 мая 2019 в 15:37
kill -9 ‘pidof youprogrammname’ спасет пользователя от вашей программы 🙂
6 мая 2019 в 15:49
Хотите на свою голову проклятий от людей, которым не нравится нестандартное поведение программ?

6 мая 2019 в 18:12

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Для кроссплатформенного решения лучше взять Qt.

Как запретить программе доступ в интернет?

Там для главного окна приложения переопределить член-функцию closeEvent следующим образом:

void MainWindow::closeEvent(QCloseEvent *event) < //событие вызывается при клацанье на крестик. Перехватываем и игнорируем его event->ignore(); >
Отслеживать
ответ дан 6 мая 2019 в 18:06
2,769 2 2 золотых знака 12 12 серебряных знаков 24 24 бронзовых знака
Спасибо!

Правда, не знаю как это переделать под консольное приложения.
7 мая 2019 в 6:42

В Linux это нецелесообразно, так как пользователь может написать в терминале xkill и убить программу, нажав на любую область окна вашей программы!

Отслеживать
1,567 8 8 серебряных знаков 33 33 бронзовых знака
ответ дан 6 мая 2019 в 15:37
69 420 1970 69 420 1970
1,951 1 1 золотой знак 13 13 серебряных знаков 33 33 бронзовых знака
Что такое «окно вашей программы», когда речь явно идет о «консольном» приложении?
6 мая 2019 в 22:37
В каком месте речь идёт о консольном приложении? Покажите мне!
6 мая 2019 в 22:50
А, точно!

Консольное! Ну какая разница? Как давно консоль перестала быть «окном программы»?
6 мая 2019 в 22:54

Окно терминала — это окно совсем другой программы. Никто вам не запрещает сделать disown на запущенный через окно терминала процесс. После этого вы можете смело убивать окно терминала чем угодно — процесс будет продолжать выполняться как ни в чем ни бывало.

6 мая 2019 в 23:05

Зачем все эти сложности, если в линуксах можно запустить программу вообще подальше от глаз пользуватиля, чтобы у него не было соблазна убить?!

Читайте также:
Где на диске с программы

Источник: ru.stackoverflow.com

Объединенный Открытый Проект

Дата регистрации на форуме:
2 сен. 2006

Господа, всегда забываю, вот вспомнил только.

Как запретить запуск игры на компьютере


Посоветуйте программу или хитрый метод какой, как можно запретить выключение приложения. Ну типа запустил калькулятор и его уже нельзя никак закрыть?
Желательно без привлечения пермишнс, так как сижу на фат. Пускай даже
через таскмэнеджр будет можно, не важно, главное чтоб мышкой не закрывалось.
P.S. Вот помоему один из недостатков XP и других gui осей.
А может есть что поставить специальное для этого?
А через локал-политики нельзя?


a peoples must know what is cost an opium for the race?

Руководитель Проекта
Настоящий Компьютерщик

Дата регистрации на форуме:
29 сен. 2001

Если чужое приложение, то довольно сложно. Единственное что приходит в голову — это зарегистрировать его как службу Windows (кажется, то ли в Windows, то Visual Stiduo для этого есть специальная утилита) и запускать его таким образом. Но и то не уверен.
А зачем вообще такое надо?
Еще вариант: попробовать поковырять его resource-editorом и просто убрать кнопку закрытия (но опять же работать будет не всегда, да и через Alt+F4 закрыть можно будет).


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

Дата регистрации на форуме:
2 сен. 2006

Ок! Мне уже тоже насчёт службы подсказывали, интересно а может руками удастся службу зарегить. Да про кнопку тоже хорошая идея! Мне вообще-то это не горит, но очень давно уже задумал, хочу некоторые проги чтоб над столом всегда висели, а у меня у самого рука тянется закрыть по привычке ) да и неловким движением тоже можно снести что угодно с десктопа, например ObjectDoc — панель, я ей часто пользуюсь как альтернативой меню, но она запросто падает если криво нажать. а в маке она же не вырубается вообще, как часть шелла.
А консоль хочу чтоб не закрывалась тоже — это я уже от самого себя прячу
Но и сама мысль мне тоже небезразлична, интересна, как некий шаг к дорабатыванию, развитию UI.


a peoples must know what is cost an opium for the race?

Дата регистрации на форуме:
5 мар. 2006

semiono
перехватывай сообщение (вроде WM_CLOSE), посылаемое ему на закрытие и создавай сразу процесс-клон. Практически универсально.

Читайте также:
Самая эффективная программа для набора мышечной массы

Руководитель Проекта
Настоящий Компьютерщик

Дата регистрации на форуме:
29 сен. 2001

Создавать клон — извращение. Можно просто возвращать в ответ на это сообщение false и не вызывать DefWndProc, только нужно уметь как-то ловить ситуации, когда комп идет на выключение, иначе будет тормозить в этих случаях.


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

Дата регистрации на форуме:
2 сен. 2006

Что-то я тему разговора потерял
» перехватывай сообщение» это насчёт чего
.
Я кстати, утилиту нашёл, которая часы останавливает — реально работает, часы вообще не двигаются : )
Хотя на днях комп не врубался, я чёто испугался, и подумал, может прога на биос влияет и как-то его
разрушить может гы-хе-хе или это не возможно впринцыпе?


a peoples must know what is cost an opium for the race?

Дата регистрации на форуме:
2 сен. 2006

А вот теперь опять ясно к чему это было хых! )
Хотя сами средства не понятны!
Если перепрограмировать окна в приложении, то пока только ясно, что надо WM_CLOSE найти.
А как вбить туда свою апи и какую это не понятно. Но это я теоретически, вообще-то я соображал
как бы простыми хитростями виндоус спрятать окно от закрытия юзером.

Хотя сейчас я уже перестал заботится об этом, так как хотел один сабж запустить таким процессом,
но оказалось он итак это поддерживает и даже больше.
Кстати, если выполнить для окон проводника Tile Windows Vertically, то такой процесс не захватывается вместе с обычными окнами — это очень удобно.
Сабж: Console 2.00.130 b for win
ещё подобные фишки есть в ZoomPlayer
[HKEY_CURRENT_USERSoftwareVirtuaMediaZoomPlayer]
«OPLocationMenu»=dword:00000001
— окно тоже не отображается на таск баре.

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

Как services запустить некое своё приложение почти не возможно, там что-то не так
Ну прописал я калькулятор в службы, он всёравно не стартует
может прав доступа нет?


a peoples must know what is cost an opium for the race?

Дата регистрации на форуме:
5 мар. 2006

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

Читайте также:
Программа чтобы подключить микрофон

Руководитель Проекта
Настоящий Компьютерщик

Дата регистрации на форуме:
29 сен. 2001


DeaDMonaX написал:

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


Такое будет работать только при наличии админских прав (точнее, прав на открытие процесса).


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

Дата регистрации на форуме:
5 мар. 2006

XXXX Pro
> 80% народу под виндой с админскими правами

Руководитель Проекта
Настоящий Компьютерщик

Дата регистрации на форуме:
29 сен. 2001


DeaDMonaX написал:
> 80% народу под виндой с админскими правами

Дома — да. На работе — от грамотности админов зависит.
Но все равно, это ненадежно (если ты только не пишешь проблему для себя лично). Блокировка WM_CLOSE проще и универсальнее, и не вступает в противоречие с концепцией Windows API.


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

Источник: www.openproj.ru

Как запретить программе закрываться

Которая выключает комп через 2 часа если не вести «шифр» которая прога сама генерирует.
Однако эту программу можно просто закрыть через диспетчер задач

#1.1 контекстная реклама от партнеров

sla8a

Ответов: 2132
Рейтинг: 665
#2: 2017-04-14 15:06:23 ЛС | профиль | цитата

А что на форуме уже открыли кружок юных вирусописателей?
dimosikILA, на этом форуме запрет на помощь в таких вопросах.

Модераторы, удаляйте тему.

dimosikILA

Ответов: 138
#3: 2017-04-14 15:09:12 ЛС | профиль | цитата
sla8a писал(а):

А что на форуме уже открыли кружок юных вирусописателей?
dimosikILA, на этом форуме запрет на помощь в таких вопросах.

Модераторы, удаляйте тему.

Да нет же это не вирус
Это прогу я сделал для мелкого (4 класс), а то он наглый стал в последнее время!

— Добавлено в 2017-04-14 15:22:29

dimosikILA писал(а):

sla8a писал(а):
А что на форуме уже открыли кружок юных вирусописателей?
dimosikILA, на этом форуме запрет на помощь в таких вопросах.

Модераторы, удаляйте тему.

Да нет же это не вирус
Это прогу я сделал для мелкого (4 класс), а то он наглый стал в последнее время! (Ему свой комп купили)

Редактировалось 1 раз(а), последний 2017-04-14 15:22:29

sla8a

Источник: forum.hiasm.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru