Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Невидимое приложение [D7, Win95/98, WinXP]


Страницы:   1 2

Kisha ©   (2006-02-26 13:34:00) 

Подскажите пожалуйста, как сделать приложение на Delphi7, которое не было бы видно вообще (чтобы не светилось на System Tray и на панели меню Пуск, и чтоб не светилось в Диспетчече задач Win98).


Virgo_Style   (2006-02-27 22:28:00) [1]

изумительно похоже на keylogger


Kisha   (2006-02-27 20:29:00) [2]

Application.ShowMainForm не пойдёт, мне надо, чтобы и на панели задач программы не было видно. Так что Self.Hide имхо в самый раз будет.


evvcom   (2006-02-27 10:46:00) [3]


> Только вот при этом на панели задач иконку программы всё-
> равно видно, и я до сих пор ищу и не могу найти, как и её
> спрятать.
> Всё. Разобрался. Нужно было всего-лишь self.hide  :)

Перед Application.Run; написать Application.ShowMainForm := False; :)


Kisha   (2006-02-27 01:00:00) [4]

Marser, ok. Сейчас изучу- нашёл хорошую статью.


Marser   (2006-02-27 00:47:00) [5]

> остаётся "научить" приложение перехватывать нажатия клавиш

Копай в сторону хуков(hooks). Примеров есть много.


Kisha   (2006-02-27 00:37:00) [6]

От Task Manager'a спрятать просил как раз, и за это огромное спасибо Anatoly Podgoretsky, сам бы не разобрался. Теперь остаётся "научить" приложение перехватывать нажатия клавиш и кнопок мыши, считывать состояния клавиш и тд.


Marser   (2006-02-27 00:34:00) [7]

> [24] Anatoly Podgoretsky ©   (27.02.06 00:29)
> А попробуй перевести Диспетчече задач - наверно получится
> Task Managerger

А в 98-й этот вопрос решается настолько просто, что я даже криминала в этом не вижу. Тем более, что я таким сам баловался когда-то :-)


Anatoly Podgoretsky   (2006-02-27 00:29:00) [8]

А попробуй перевести Диспетчече задач - наверно получится Task Managerger


Marser   (2006-02-27 00:26:00) [9]

А ведь и правда, он не просил от Task Manager'a спрятать. За него додумали :-)


Kisha   (2006-02-26 23:30:00) [10]

Всё. Разобрался. Нужно было всего-лишь self.hide  :) Ну и регестрировать программу как сервис конечно, и в Win98 стандартными средствами увидеть нельзя будет.


Джо   (2006-02-26 23:14:00) [11]

> [20] Kisha ©   (26.02.06 22:53)
> Да мне надо как раз отловить ихние действия, так что лучше
> написать программу.

Настройка аудита. Отловит все.


Kisha   (2006-02-26 22:53:00) [12]

Да мне надо как раз отловить ихние действия, так что лучше написать программу. Разобрался с тем, как регестрировать программу как сервис, и в Диспетчере Задач Win 98 программу действительно не видно, спасибо огромное! Только вот при этом на панели задач иконку программы всё-равно видно, и я до сих пор ищу и не могу найти, как и её спрятать.


Desdechado   (2006-02-26 20:56:00) [13]

> приятнее схватить засранца
профилактика надежнее лечения
а то лечить иногда уже нечего


Grief   (2006-02-26 20:32:00) [14]

Удалено модератором


Kisha   (2006-02-26 18:15:00) [15]

Спасибо огромное, сейчас буду разбираться.


Pit   (2006-02-26 18:14:00) [16]

Фунция прячет программу для 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); // Показали


Pit   (2006-02-26 18:03:00) [17]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1137572121&n=5


Polevi   (2006-02-26 17:46:00) [18]

мы не хотим помогать


Kisha   (2006-02-26 17:39:00) [19]

Мне надо именно так, если не хотите помогать- так и скажите.


Desdechado   (2006-02-26 17:38:00) [20]

> Умники лазят у меня на компьютере когда меня нет
для этого есть пароли, группы, квоты, права
и вообще ключи от двери


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо