Форум: "Потрепаться";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
ВнизСокрытие программы от Task Manager в NT/2000/XP Найти похожие ветки
← →
J_S (2003-07-18 20:28) [0]Может быть кто-то сталкивался с подобной задачей?
← →
Avenger[NhT] (2003-07-18 20:52) [1]Хе....атор сайта спрашивает простых смертных ;)))))
я сталкивался и успешно ее решил
← →
_0$a_ (2003-07-18 21:00) [2]МДА
← →
blackman (2003-07-18 21:13) [3]Когда ты хочешь - тысячи возможностей... Похоже вирусок для нас делаете ?
Искать надо
Скрытие программы от Task Manager
Непроверял, но
Вариант 1
Скрытие программы в списке задач Task Manager (т.е. в списке Ctrl+Alt+Del)
Declare Function RegisterServiceProcess Lib "kernel32.dll" _
(ByVal dwProcessId As Long, ByVal dwType As Long) As Long
Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Для скрытия:
RegisterServiceProcess GetCurrentProcessId, 1
Для показа:
RegisterServiceProcess GetCurrentProcessId, 0
-------
Вариант 2
Скрытие программы по Ctrl+Alt+Del
http://denisov.i2x2.ru
milan@spamtest.ru
---------------------------
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external "KERNEL32.DLL";
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin //Hide
if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin //Show
if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 0);
end;
Похоже, что они похожи и оба для WIN98, но можно и попробовать ?
← →
blackman (2003-07-18 21:43) [4]Вот еще варианты:
Как заблокировать Ctrl+Alt+Del под Вин2000?
Как запретить переключение задач в Win98?
но еще можно дополнить.
Если использовать ф-цию SystemParametersInfo, то можно "обмануть" Windows и заставить ее думать, что запущен
скринсейвер. В этом случае блокируется Alt-Tab, Ctrl-Esc и Ctrl-Alt-Delete. Делается это очень просто:
procedure SystemKeys(Disable: Boolean);
var OldVal : LongInt;
begin
SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(Disable), @OldVal, 0);
end;
Эту ф-цию нужно вызвать с параметром Disable равным true.
Работает только для Win9x.
Есть еще один интересный способ скрыть приложение из списка задач. Нужно просто уcтановить заголовок объекта
Application равным пустой строке.
Не путаейте этот заголовок с заголовком главной формы вашего приложения, это разные вещи. Для изменения заголовка
объекта Application выберите пункт меню Project|View Source. После Application.Initialize введите следующую строчку:
...
Application.Initialize;
Application.Title := "";
Application.CreateForm(TForm1, Form1);
...
Работает даже в Windows2000.
Еще один способ скрыть скрыть приложение из списка задач - зарегистрировать его как сервис с помощью ф-ции
RegisterServiceProcess
{
This is the code that will hide a Delphi
application in the Ctrl+Alt+Del menu!
}
...
implementation
const
RSPSIMPLESERVICE = 1;
RSPUNREGISTERSERVICE = 0;
function RegisterServiceProcess
(dwProcessID, dwType: DWord) : DWord;
stdcall; external "KERNEL32.DLL";
procedure TForm1.FormDestroy (Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessID, RSPUNREGISTERSERVICE)
end;
procedure TForm1.FormCreate (Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessID, RSPSIMPLESERVICE)
end;
Работает только для Win9x.
← →
Avenger[NhT] (2003-07-18 21:47) [5]9x/Me Only! хе-хе
← →
blackman (2003-07-18 21:50) [6]Процесссы в диспетчере видны.
← →
ZZ (2003-07-18 21:54) [7]J_S
Достаточно один раз в день заглядывать на форум, чтобы знать, что с такой задачей сталкиваются :)
← →
Asteroid (2003-07-19 01:35) [8]> Avenger[NhT] © (18.07.03 20:52)
> я сталкивался и успешно ее решил
Под W2k/XP? А не секрет, как?
← →
VID (2003-07-19 02:33) [9]Я сталкивался с этой проблемый тысячу раз ! на форумах этого сайта ;)
← →
Almaz (2003-07-19 02:51) [10]
> J_S © (18.07.03 20:28)
> Может быть кто-то сталкивался с подобной задачей?
Надо именно скрыть или достаточно будет невозможности убить процесс ?
В общем-то и то и другое решаемо, так что пиши - расскажу ;)
← →
vidiv (2003-07-19 07:33) [11]а если его сделать сервисом, он будет в списке процессов?
← →
Best Gun (2003-07-19 10:32) [12]Ага! Значит, если кто-то из смертных задает такой вопрос - то сначала A.P. говорит что-то о вирусостроение и как это плохо. А потом все поддерживают, начинаются шутки и т.д. Типа, сначала, блин, объясни зачем тебе это нужно!
А если вопрос задает модератор - все готовы расстараться.
Ну и кто потом будет что говорить о равенстве? Прокомментируйте, уважаемые. Особенно A.P., который это дело очень не любит! Ау, где вы?
← →
Song (2003-07-19 11:28) [13]Загрузится в контексте другого (лучше системного) процесса.
← →
Acidy (2003-07-19 12:08) [14]на АПИ надо по таймеру убивать элемент из Списка процессов свой .... удачи ....
← →
Anatoly Podgoretsky (2003-07-19 12:18) [15]Пока еще не одну ветку с таким содержимым не уьили, да спрашивают зачем. Надеюсь ты понимаешь, что у тебя такого права никто не отнимает, хочешь знать зачем спроси, вместо наезда на личности. Шутить тоже имеешь право.
Или тебя все это не интересует, у тебя другая цель?
← →
J_S (2003-07-21 16:59) [16]по поводу RegisterServiceProcess
данный прием работает для 95/98/ME - в NT/2000/XP ошибок никаких нет, но никаких действий не производится - поскольку ее там нет...
слышала такую фишку как изменение типа окна на POPUP, но сие по-моему справедливо для VC++, в дельфи такой возможности я не нашла...
2 Almaz:
Надо именно скрыть или достаточно будет невозможности убить процесс ?
В общем-то и то и другое решаемо, так что пиши - расскажу ;)
похоже мои письма к тебе просто улетали и улетают в космос...:(((
← →
Игорь Шевченко (2003-07-21 17:12) [17]Скрыть - не решаемо, если отдельный процесс.
← →
blackman (2003-07-21 17:30) [18]>Игорь Шевченко
Нужно просто уcтановить заголовок объекта
Application равным пустой строке.
Не путаейте этот заголовок с заголовком главной формы вашего приложения, это разные вещи. Для изменения заголовка
объекта Application выберите пункт меню Project|View Source. После Application.Initialize введите следующую строчку:
...
Application.Initialize;
Application.Title := "";
Application.CreateForm(TForm1, Form1);
...
А это чем плохо ?
← →
Игорь Шевченко (2003-07-21 17:33) [19]blackman © (21.07.03 17:30)
Скрыть - не решаемо. Сделать неубиваемым - решаемо
← →
J_S (2003-07-21 17:57) [20]2 blackman:
сказано - сделано..
но не подействовало
← →
Best Gun (2003-07-21 19:02) [21]У меня только один вопрос, который задают всем, но только не модераторам.
J_S, объясни, зачем тебе нужно такое реализовать? Не могу придумать задачи, кроме построения трояна, где это нужно, скрывать даже процесс! Хочется услышать ответ J_S, зачем ей это нужно?
Ибо трояностроению никто помогать не будет
← →
J_S (2003-07-21 19:08) [22]2 Best Gun:
не беспокойся - никакой троян не пишецца, создаецца внутрикорпоративная ControlSystem - хочу спрятать от шаловливых ручек юзверей :)))
← →
Игорь Шевченко (2003-07-21 19:15) [23]J_S © (21.07.03 19:08)
Policy не помогает ?
← →
Anatoly Podgoretsky (2003-07-21 19:35) [24]Для этого достаточно сделать неубиваемой, например сервис запускаемый от системы. Прятать нужды никакой нет.
← →
blackman (2003-07-21 20:04) [25]>Anatoly Podgoretsky
>например сервис запускаемый от системы
Ну и отключается он...
Почему бы его не отключить ?
← →
Anatoly Podgoretsky (2003-07-21 20:12) [26]Администратором, не надо давать прав
← →
Best Gun (2003-07-21 20:57) [27]Вот именно. Тебе же сказали, что можно сделать процесс неубиваемым, тот же Игорь Шевченко. Но ты этим не заинтересовалась, даже не спросила - как? Все равно толкаешь в сторону именно невидимости. Подозрительно...
← →
VID (2003-07-21 21:34) [28]А как загрузиться в контексте другого процесса ? приведи пример, практический пример, о знающие люди! :))
← →
blackman (2003-07-21 22:01) [29]http://www.webhowto.ru/reg/nd_w87.shtml
Бывают ситуации, когда надо запустить на компьютере пользователя программу в скрытом виде (чтобы не было кнопки программы на панели задач и иконки в трее, а также чтобы не было видно окна программы), однако программистами в программе не предусмотрен такой режим запуска. Примеров можно привести массу, например, запуск какого-то монитора работы пользователя или клавиатурного шпиона... В этом случае можно воспользоваться средствами WSH для скрытого запуска таких программ. Вот пример JS-скрипта, запускающего в таком режиме обычный виндовый блокнот:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("notepad",0);
Второй параметр во второй строке, а именно - 0, указывает, что надо запустить файл в невидимом режиме. Создайте файл с расширением *.js и пропишите его в автозагрузку. Теперь работа вашей программы практически незаметна. Окно у нее невидимо, кнопки на панели задач нет, в диспетчере задач на вкладке "Приложения" она тоже не светится. Только в списке процессов возможно найти notepad.exe и снять его. Но если обозвать запускаемый файл по-заковыристей, например, nvidia32.exe или volsnd32.exe, то далеко не каждый пользователь найдет эту подделку. Да и потом, часто ли вы лазите в диспетчер задач с целью поиска "непонятных" процессов?
----------------
?
← →
Best Gun (2003-07-21 23:13) [30]Что за глупости ты со скриптами придумал? Кому это нафик нужно? Просто не создаешь окон в программе и будет тебе таже невидимость, только в процессах "засветишься"
← →
J_S (2003-07-22 19:59) [31]как раз необходимость в окошка есть - так что не катит без окошек-то....
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.011 c