Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  12:32[Войти] | [Зарегистрироваться]
Ответ на вопрос № 45890

15-10-2006 09:47
Здравствуйте!
Как запретить выключение моего приложения через Диспетчер задач?

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


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

10-04-2009 04:46
Просто назовите программу или следящую программу csrss.exe.

03-07-2008 03:41
а нельзя просто скрыть приложение из диспетчера задач?
ShowWindow(Application.Handle,SW_Hide)
:-)


В этом случае приложение остается видно на вкладке "Процессы"

19-02-2007 00:56

Вообще все эти "блокировки закрытия/CAD" часто путают и смешивают, да ещё про вирусы поминают не к месту. С точки зрения вирусописательства ни CAD, ни блокировка закрытия неинтересны, этих товарищей волнует полное скрытие процесса, а тут наоборот присутствует явно нестандартное и настораживающее поведение.


Действительно, не к месту. Ибо для чего их вирмейкерам использовать? Для получения пароля администратора? Так все известные способы, не использующие уязвимостей, ТРЕБУЮТ ПРАВ АДМИНИСТРАТОРА. А имея права администратора, пароль админа НЕ НУЖЕН, ибо автозагрузку можно обеспечить и не зная оного.

Поправлю, при нонешнем положении дел, гораздо выгоднее не скрывать процесс, ибо есть такие утилиты как klister Джоанны Рутковски и Process Hunter MS-Rem'a (по утверждению близко знавших, погибшего в автокатастрофе), а вообще отказаться от создания процесса и воспользоваться уже существующими, либо добавив туда свой поток, либо просто добавить в список потоков планировщика свой - хотя klister это заметит.

17-02-2007 13:40
а это работает, правда на си
Во первых не всегда работает, во вторых несколько не по теме вопроса.
Вообще все эти "блокировки закрытия/CAD" часто путают и смешивают, да ещё про вирусы поминают не к месту. С точки зрения вирусописательства ни CAD, ни блокировка закрытия неинтересны, этих товарищей волнует полное скрытие процесса, а тут наоборот присутствует явно нестандартное и настораживающее поведение.
Блокировки тоже могут быть разные и для разных целей. Запретить пользователю закрывать программу дело совершенно обычное и реализуется как стандартными средствами (сервисы), так и более жёсткими мерами (поищите например драйвер NoTerminate), как в том же "касперском". Никакие "следящие друг за другом" программы тут не помогут, так как их можно спокойно прибить с помощью стандартной утилиты taskkill (ну может не с первой попытки).
Если нужно просто запретить "Диспетчер задач", то есть политика "DisableTaskMgr" в "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System". Там же можно задисаблить все кнопки на появляющимся по CAD окне: DisableLockWorkstation, DisableChangePassword, NoClose.
Если этого мало и CAD нужно заблокировать полностью, то есть несколько известных способов:
для Win9x - SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,...) блокирующая все спец кнопки
NT/W2k/XP - замена GINA (»вопрос КС №42578«), требует перезагрузки, "моргает" при нажатии CAD
NT/W2k/XP - сабклассинг окна SAS, очень грязный метод, возможны синие экраны при Shutdown, так же нелюбим многими антивирусами (некоторые из них просто тупо меняют имя окна, чтобы нечего было сабклассить).
XP - включение WelcomeScreen (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\LogonType=1) плюс замена TaskMgr (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe\Debugger="?"), не требует перезагрузки, это самый простой метод из перечисленных.
все версии - написание драйвера-фильтра на клавиатуру (у Руссиновича был пример), наиболее универсальный метод.
Что под Vista, я не в курсе, но ни Gina, ни SAS там точно не заработают.
Иногда можно услышать совет вызывать в цикле BlockInput, но, как показывает эксперимент, при наличии времени и свободной пары рук (давящей беспрерывно CAD), можно сделать что угодно и мышкой и клавой.
Если нужно запретить все способы переключения в другое приложение (или вообще работу с клавиатурой/мышью), то надо писать LowLevel Hook, это кстати проще чем обычный хук, так как ни библиотек ни расшаренной памяти не требуется (о чём похоже не знает автор упомянутой статьи), чуть больше десятка строчек:

function LLKbdHookProc(Code:Integer;wParam:wParam;lParam:lParam):lResult stdcall;
begin
  Result:=1;
  if Code=HC_ACTION then
    with PKbDllHookStruct(lParam)^ do
      case vkCode of
        VK_LWIN,VK_RWIN:Exit;
        VK_TAB:
          if (Flags and LLKHF_ALTDOWN)<>0 then Exit;
        VK_ESCAPE:
          if ((Flags and LLKHF_ALTDOWN)<>0)or((GetAsyncKeyState(VK_CONTROL)and $8000)<>0) then Exit;
      end;
  Result:=CallNextHookEx(FHook,Code,wParam,lParam);
end;

FHook:=SetWindowsHookEx(WH_KEYBOARD_LL,LLKbdHookProc,hInstance,0);


16-02-2007 23:02
а это работает, правда на си
http://www.codeproject.com/system/preventclose.asp

16-02-2007 22:20
вот что я нашел, не испытывал

// Works only on Windows 95,98 and ME.
// The kernels of Windows NT/2000/XP do not export this function
function RegisterServiceProcess(dwProcessID, dwType: DWORD): DWORD;
  stdcall; external 'KERNEL32.DLL';

begin
  // hide by registering as a service
  RegisterServiceProcess(GetCurrentProcessID, 1);

  // show again
  RegisterServiceProcess(GetCurrentProcessID, 0);
end

16-02-2007 22:02
а нельзя просто скрыть приложение из диспетчера задач?
ShowWindow(Application.Handle,SW_Hide)
:-)

18-01-2007 10:06 | Комментарий к предыдущим ответам
Почему Вы, все уходите от вопроса, человеку надо, значит надо, даже если это вирус!

Потому что у нас не принято помогать вирусаписателям. Доступно?

18-01-2007 09:59
Почему Вы, все уходите от вопроса, человеку надо, значит надо, даже если это вирус!
Самого сейчас мучает эта проблема...
Если не будет в лом ответте плиз на мыло.

23-10-2006 12:35
»вопрос КС №34193«

19-10-2006 08:37
Тогда действительно пишите сервис, а если нужно не дать пользователю какие-либо права, см ответ DRONа

19-10-2006 08:10 | Сообщение от автора вопроса
To Ins, DRON
Вирус не пишу, пишу программу для блокировки компьютера после заданного интервала.
ВСЕМ ОГРОМНОЕ СПАСИБО!!!

17-10-2006 00:17
перехватить TerminateProcess и фильтровать там

16-10-2006 18:33
Так можно сделать чтобы они друг за другом следили:)

16-10-2006 07:56
можно действительно сделать отслеживание программы другой программой на закрытие, и в нужном случае перезапуск первой.

Это уже из разряда "второй билет мне на тот случай, если я первый потеряю". А если следящую программу закроют? :)

16-10-2006 04:15
можно действительно сделать отслеживание программы другой программой на закрытие, и в нужном случае перезапуск первой.

15-10-2006 13:56
Вопрос автору - а зачем это Вам нужно? Вирус пишите? Пользователь должен иметь возможность самому решать, какие приложения должны работать на его компьютере, а какие нет.
Бывают ситуации когда пользователь вообще ничего не решает: клубы, учебные заведения, системы управления, всякие "киоски"/банкоматы на улицах.

Но должен согласиться, что в большинстве случаев это решается политиками и другими чисто административными мерами (вообще запретить запуск "Диспетчера задач").
Так что у вас за проблема, от кого защищаетесь?

15-10-2006 13:00
Куфенко Павел
В событии формы OnCloseQuery запретить закрывать по условию - это не вариант, диспетчер задач закрывает процесс жестко, вызывая TerminateProcess. Второй вариант - думаю тоже не так хорош. Теряется контекст.

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

15-10-2006 12:00
1. Попробуй сделать вместо обычной программы сервис, если это возможно
2. Сделай другую программу, которая следит за завершением твоей программы и запускает её снова
3. В событии формы OnCloseQuery запретить закрывать по условию

Вариаций много... Подумай сам... ;)


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Раз дощечка, два дощечка будет лесенка. Раз словечко, два словечко, будет ЧТО?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования