Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

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

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

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Программирование »   Windows API »   Запретить закрытие приложения
RSS

Запретить закрытие приложения

Как это сделать


<<Назад  Вперед>>Печать
 
semiono
Долгожитель форума

semiono
Откуда: Арзамас
Всего сообщений: 383
Рейтинг пользователя: 2





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

---
a peoples must know what is cost an opium for the race?
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





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

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

semiono
Откуда: Арзамас
Всего сообщений: 383
Рейтинг пользователя: 2





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

---
a peoples must know what is cost an opium for the race?
DeaDMonaX
Почетный участник

DeaDMonaX
Откуда: Russia
Всего сообщений: 108
Рейтинг пользователя: 5





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

---
Save&Exit
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





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

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

semiono
Откуда: Арзамас
Всего сообщений: 383
Рейтинг пользователя: 2





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

---
a peoples must know what is cost an opium for the race?
Эта тема была выделена из темы "Повышение стабильности Windows" (5 апреля 2007 16:51)
semiono
Долгожитель форума

semiono
Откуда: Арзамас
Всего сообщений: 383
Рейтинг пользователя: 2





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

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

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

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

---
a peoples must know what is cost an opium for the race?
DeaDMonaX
Почетный участник

DeaDMonaX
Откуда: Russia
Всего сообщений: 108
Рейтинг пользователя: 5





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

---
Save&Exit
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





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

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

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

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

DeaDMonaX
Откуда: Russia
Всего сообщений: 108
Рейтинг пользователя: 5





Дата регистрации на форуме:
5 мар. 2006
XXXX Pro
> 80% народу под виндой с админскими правами

---
Save&Exit
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





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

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

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

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
<<Назад  Вперед>>Печать
Объединенный Открытый Проект »   Программирование »   Windows API »   Запретить закрытие приложения
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0559. Количество выполненных запросов: 19, время выполнения запросов 0.0388