Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Прячем программу для TaskManager

Delphi , Программа и Интерфейс , Процессы и Сервисы

Прячем программу для TaskManager

Автор: Subfire
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Прячет программу в TaskManager (по Ctrl+Alt+Del)

Фунция прячет программу для TaskManager, регестрируя ее как сервис.
Запускать из приложения.
Передаешь true для регистрации сервиса, false для снятия регистрации.
Возвращает true если успешно.
В win95-98-ME программа исчезнет из списка задач.
В NT/2000/XP просто нет RegisterServiceProcess и функция вернет
false без возникновения ошибки.

Зависимости: *
Автор:       Subfire, subfire@mail.ru, ICQ:55161852, Санкт-Петербург
Copyright:   Subfire
Дата:        3 октября 2002 г.
***************************************************** }

function RegisterAsService(Enable: Boolean): boolean;
type
  TRSP = function(H: THandle; K: word): longword; stdcall;
var
  RSP: TRSP;
begin
  @RSP := GetProcAddress(GetModuleHandle(PChar('kernel32.dll')),
    PChar('RegisterServiceProcess'));
  Result := Assigned(@RSP);
  if Result then
  begin
    if Enable then
      Result := (RSP(0, 1) = 1)
    else
      Result := (RSP(0, 0) = 1);
  end;

Пример использования:

// OnCreate
RegisterAsService(True); // Спрятали

// on **
RegisterAsService(False); // Показали

Классика! Это функция Delphi, написанная Subfire, которая регистрирует процесс как Windows-сервис с помощью API-функции RegisterServiceProcess. Цель этой функции - скрыть программу из Панели задач, зарегистрировав ее как сервис.

Вот разбивка кода:

  1. Тип TRSP определяется как указатель на функцию RegisterServiceProcess в kernel32.dll, которая принимает два параметра: H (handle) и K (слово).
  2. Переменная RSP присваивается значение указателя на функцию TRSP с помощью GetProcAddress и GetModuleHandle.
  3. Функция возвращает Assigned(@RSP) для проверки валидности указателя на функцию.
  4. Если указатель на функцию валиден, она вызывает функцию RegisterServiceProcess с параметром Enable = True (для регистрации процесса как сервиса) или Enable = False (для отмены регистрации).
  5. Результат вызова возвращается, указывая, была ли регистрация успешной.

Пример использования функции показывает, как ее использовать в приложении:

  • В обработчике события OnCreate, вызывается RegisterAsService(True), чтобы зарегистрировать программу как сервис и скрыть ее из Панели задач.
  • В обработчике события ** (предположительно, обработчик отмены регистрации), вызывается RegisterAsService(False) для отмены регистрации программы, сделав ее видимой снова в Панели задач.

Некоторые примечания:

  • Этот код работает на Windows 95, 98, ME, NT, 2000 и XP. Однако, как отмечено в комментариях, функция RegisterServiceProcess не доступна на NT/2000/XP, что означает, что эта функция вернет False без возникновения ошибки.
  • Автор Subfire - это разработчик Delphi из Санкт-Петербурга, Россия.

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

Программа для TaskManager позволяет прятать себя в виде сервиса, регестрируя его какsuch и запуская из приложения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Процессы и Сервисы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:05:05/0.0037059783935547/0