Помогите! Как можно в Delphi убрать приложение из таскбара и, если возможно из списка задач?
» Помогите по Delphi 6: скрытие приложения
В проекте (Project->view source):
Цитата:
Цитата:
program Project2;
uses
Forms, Windows,
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
var
ExtendedStyle : integer;
begin
Application.Initialize;
ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Спасибо
Добавлено:
Еще маленький вопрос: а из списка задач никак нельзя убрать?
Добавлено:
Еще маленький вопрос: а из списка задач никак нельзя убрать?
Tok_Nik
Цитата:
Это смотря какая задача, а сделать можно всё. Опиши задачу.
Цитата:
Добавлено:
Еще маленький вопрос: а из списка задач никак нельзя убрать?
Это смотря какая задача, а сделать можно всё. Опиши задачу.
Ну я имею в ввиду приложение которое создаю в delphi. Чтобы оно не показывалось в Диспечер задач -> Процессы.
Цитата:
Еще маленький вопрос: а из списка задач никак нельзя убрать?
Вроде бы было решение, но довольно сложно, насколько помнится. И реализация различается для NT4, Win2000 и WinXP.
Tok_Nik
Цитата:
В windows 9x легко
_http://delphiworld.narod.ru/base/no_in_ctrl_alt_del.html
В windows 2000/xp это гораздо сложнее. Нужно использовать механизм hook api. Есть такой пример
_http://delphiworld.narod.ru/base/app_xp_hide.html
Только когда диспетчер задач показывается в нем на мгновенье показывается твой процесс и только потом исчезает.
Цитата:
Еще маленький вопрос: а из списка задач никак нельзя убрать?
В windows 9x легко
_http://delphiworld.narod.ru/base/no_in_ctrl_alt_del.html
В windows 2000/xp это гораздо сложнее. Нужно использовать механизм hook api. Есть такой пример
_http://delphiworld.narod.ru/base/app_xp_hide.html
Только когда диспетчер задач показывается в нем на мгновенье показывается твой процесс и только потом исчезает.
Цитата:
В windows 2000/xp это гораздо сложнее. Нужно использовать механизм hook api. Есть такой пример _http://delphiworld.narod.ru/base/app_xp_hide.html
Это можно использовать для Win9x ?
Tok_Nik
Цитата:
Нет нельзя. Для Win9x достаточно использовать функцию RegisterServiceProcess. Только ее нет в Windows NT/2000/XP. Так что используй динамическую загрузку dll.
Цитата:
Это можно использовать для Win9x ?
Нет нельзя. Для Win9x достаточно использовать функцию RegisterServiceProcess. Только ее нет в Windows NT/2000/XP. Так что используй динамическую загрузку dll.
AlxMonster
Цитата:
Плохое решение.
Tok_Nik
Цитата:
Пиши сервис, и никаких проблем. А ещё лучше -- драйвер). Правда, придётся дурацкий) Delphi выбросить для этого.
Цитата:
Только когда диспетчер задач показывается в нем на мгновенье показывается твой процесс и только потом исчезает.
Плохое решение.
Tok_Nik
Цитата:
Еще маленький вопрос: а из списка задач никак нельзя убрать?
Пиши сервис, и никаких проблем. А ещё лучше -- драйвер). Правда, придётся дурацкий) Delphi выбросить для этого.
попадалась книга: Делфи глазами хакера
там подробно описано как убрать и их трея и как из диспечера задач.
причем попадалась в pdf.
если найду листинг вставлю.
Цитата:
Пиши сервис, и никаких проблем. А ещё лучше -- драйвер). Правда, придётся дурацкий) Delphi выбросить для этого.
в этой книге описывается и ка драйвер написать на делфи.
DeadBoatman
Цитата:
Уж не некоего Флёнова? Что-то он многовато написал книг серии "Глазами хакера", прям конвейер какой-то. Полистал пару книжек, и не сказал бы, что хакерское, скорее -- для "хакерствующих".
Цитата:
По-моему, бессмысленная эта затея (насчёт диспетчера) -- ну поставите хук на него, а что делать с другими подобными утилитами (а их много!), например, с Process Explorer? На все хуков не напасёшься, да и накладно это для системы.
Цитата:
Давай, жду кода, чтобы посмеяться. А тебе известно, что компиляторы Borland неправильно могут сгенерировать даже простой vxd (если мне не веришь, обратись к руководству пакета VtoolsD от CompuWare, замечательного, между прочим, продукта). Про sys-драйверы я молчу. Borland-компиляторы для этого вообще не подходят. Претензии к Microsoft.
Добавлено:
AlxMonster
Цитата:
Посмотрел это "решение"... настолько ужасное. Кое-что содрали из книги Питрека, видны следы. Но, для профессионального использования не годится. Не буду пояснять, почему малоэффективно работа через секцию импорта. Самое плохое -- использование хука
Код: SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0)
Цитата:
попадалась книга: Делфи глазами хакера
Уж не некоего Флёнова? Что-то он многовато написал книг серии "Глазами хакера", прям конвейер какой-то. Полистал пару книжек, и не сказал бы, что хакерское, скорее -- для "хакерствующих".
Цитата:
там подробно описано как убрать и их трея и как из диспечера задач
По-моему, бессмысленная эта затея (насчёт диспетчера) -- ну поставите хук на него, а что делать с другими подобными утилитами (а их много!), например, с Process Explorer? На все хуков не напасёшься, да и накладно это для системы.
Цитата:
в этой книге описывается и ка драйвер написать на делфи
Давай, жду кода, чтобы посмеяться. А тебе известно, что компиляторы Borland неправильно могут сгенерировать даже простой vxd (если мне не веришь, обратись к руководству пакета VtoolsD от CompuWare, замечательного, между прочим, продукта). Про sys-драйверы я молчу. Borland-компиляторы для этого вообще не подходят. Претензии к Microsoft.
Добавлено:
AlxMonster
Цитата:
http://delphiworld.narod.ru/base/app_xp_hide.html
Посмотрел это "решение"... настолько ужасное. Кое-что содрали из книги Питрека, видны следы. Но, для профессионального использования не годится. Не буду пояснять, почему малоэффективно работа через секцию импорта. Самое плохое -- использование хука
Код: SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0)
DeadBoatman
Цитата:
Драйвер на делфе реально, но только на 3 версии.TeXpert
Цитата:
Компилятор здесь ни причём. Причём сдесь линковщик. Вся проблема в том, что борландовский линковщик не может делать драйвера, а майкрософтовский может. С 4 делфи поменялся формат obj и он теперь не совместимый с майкрософтовским стандартом.
Цитата:
Компилятор vxd не генерирует. Этим занимается линковщик. Но борландовский линковщик не может генерировать vxd. Прочувствуй эту фразу. А потом подумай, что написал.
Когда то на одном форуме (кажеться майкрософта) обсуждалась подобная проблема. Предлагались очень изысканые решения. Но одна девочка (судя по нику) предложила очень оригинальный способ. Суть следующая.
Ставим таймер и при его срабатывании проверяем наличие окна таскмонитора. Если оно есть - закрываем (посылка wm_close) или (что более оригинально) перемещаем за пределы рабочего стола. Если сделать плавный уход, то смотриться вообще красиво.
Tok_Nik
Цитата:
Ну это ещё можно понять
Цитата:
За такое - поубывав бы. Такое нужно только для вирусняков, троянов и програм-приколистов.
Или я ошибаюсь?
Цитата:
в этой книге описывается и ка драйвер написать на делфи.
Драйвер на делфе реально, но только на 3 версии.TeXpert
Цитата:
Borland-компиляторы для этого вообще не подходят. Претензии к Microsoft.
Компилятор здесь ни причём. Причём сдесь линковщик. Вся проблема в том, что борландовский линковщик не может делать драйвера, а майкрософтовский может. С 4 делфи поменялся формат obj и он теперь не совместимый с майкрософтовским стандартом.
Цитата:
А тебе известно, что компиляторы Borland неправильно могут сгенерировать даже простой vxd
Компилятор vxd не генерирует. Этим занимается линковщик. Но борландовский линковщик не может генерировать vxd. Прочувствуй эту фразу. А потом подумай, что написал.
Когда то на одном форуме (кажеться майкрософта) обсуждалась подобная проблема. Предлагались очень изысканые решения. Но одна девочка (судя по нику) предложила очень оригинальный способ. Суть следующая.
Ставим таймер и при его срабатывании проверяем наличие окна таскмонитора. Если оно есть - закрываем (посылка wm_close) или (что более оригинально) перемещаем за пределы рабочего стола. Если сделать плавный уход, то смотриться вообще красиво.
Tok_Nik
Цитата:
Помогите! Как можно в Delphi убрать приложение из таскбара и,
Ну это ещё можно понять
Цитата:
если возможно из списка задач?
За такое - поубывав бы. Такое нужно только для вирусняков, троянов и програм-приколистов.
Или я ошибаюсь?
Цитата:
Такое нужно только для вирусняков, троянов и програм-приколистов.
Я не пишу вирусов и т.п.
Цитата:
Или я ошибаюсь?
Ошибаешся конечно. Просто охото отомстить "другу"...
Tok_Nik
Цитата:
Цитата:
Разницы никакой.
Нужно внимательно смотреть "какой друг". В некоторых можно по башке получить, а некоторых и kaht наказать можно. Но по поводу этого вам в варёзник.
Цитата:
програм-приколистов
Цитата:
Просто охото отомстить "другу"
Разницы никакой.
Нужно внимательно смотреть "какой друг". В некоторых можно по башке получить, а некоторых и kaht наказать можно. Но по поводу этого вам в варёзник.
Цитата:
Цитата:
Только когда диспетчер задач показывается в нем на мгновенье показывается твой процесс и только потом исчезает.
Плохое решение.
На самом деле название процесса невозможно заметить. Для "отомстить другу" способ вполне нормальный, если он ничего не подозревает, он ничего и не заметит (моральные аспекты этого вопроса опустим).
Сервисы видны в списке процессов. Про драйверы было верно сказано - Delphi не предназначен для написания драйверов, да и сложно это все для "отомстить другу". А для установки нужны админские привилегии.
Итак немного тоже внесу свой вклад в это дело, первое чтобы друг не заподозрил наличие программы назови ее svchost.exe и пульни куда нить подальше, в списке задач будет еще один сервисный процесс, если друг чайник, то ему хватит, иначе он в любом случае посмотрит секцию загрузки и увидит левый процесс.
Хотя как уже говорили, за подобное можно и схлопотать по ушам так как криво написаная программа может немало "счастья" принести.
Хотя как уже говорили, за подобное можно и схлопотать по ушам так как криво написаная программа может немало "счастья" принести.
OdesitVadim
Цитата:
Это конечно, имелось в виду, просто для обычных пользователей Delphi им это без разницы (что линкер, что компилятор), у меня это получилось подсознательно.
Цитата:
Насколько помню, извратиться всё же можно. Но не нужно. Надо уточнить.
Цитата:
Опять же плохое решение. А не проще ли ставить хук оболочки (между прочим, самый "лёгкий" в смысле нагрузок на систему) на запуск процессов, чтобы узнать момент запуска task monitor? Но вообще повторюсь -- считаю это бессмысленным, поскольку есть куча других мониторов. В этом смысле изящнее, за неимением других, способ, предложенный ShIvADeSt
Цитата:
уверен, при грамотной реализации (если не забыли сделать скрытным "SW_HIDE") даже опытные пользователи не сразу заметят "подарок" друга.
Цитата:
Необязательно для троянов и пр. Иногда всё же нужно, чтобы не все видели процесс.
AlxMonster
Цитата:
Но заметит, скорее всего, по тормозам системы (в предыдущем посте писал). А потом, почему уверены, что он воспользуется непременно task monitor? Я, например, почти всегда использую Process Explorer Руссиновича. Намного мощнее прога.
Цитата:
Это верно. Заметил потом, но исправлять не стал.
ShIvADeSt
Цитата:
Скорее так и будет.
Цитата:
Компилятор здесь ни причём. Причём сдесь линковщик
Это конечно, имелось в виду, просто для обычных пользователей Delphi им это без разницы (что линкер, что компилятор), у меня это получилось подсознательно.
Цитата:
Но борландовский линковщик не может генерировать vxd
Насколько помню, извратиться всё же можно. Но не нужно. Надо уточнить.
Цитата:
Но одна девочка (судя по нику) предложила очень оригинальный способ. Суть следующая.
Ставим таймер и при его срабатывании проверяем наличие окна таскмонитора. Если оно есть - закрываем (посылка wm_close) или (что более оригинально) перемещаем за пределы рабочего стола. Если сделать плавный уход, то смотриться вообще красиво
Опять же плохое решение. А не проще ли ставить хук оболочки (между прочим, самый "лёгкий" в смысле нагрузок на систему) на запуск процессов, чтобы узнать момент запуска task monitor? Но вообще повторюсь -- считаю это бессмысленным, поскольку есть куча других мониторов. В этом смысле изящнее, за неимением других, способ, предложенный ShIvADeSt
Цитата:
чтобы друг не заподозрил наличие программы назови ее svchost.exe
уверен, при грамотной реализации (если не забыли сделать скрытным "SW_HIDE") даже опытные пользователи не сразу заметят "подарок" друга.
Цитата:
За такое - поубывав бы. Такое нужно только для вирусняков, троянов и програм-приколистов.
Или я ошибаюсь?
Необязательно для троянов и пр. Иногда всё же нужно, чтобы не все видели процесс.
AlxMonster
Цитата:
На самом деле название процесса невозможно заметить. Для "отомстить другу" способ вполне нормальный, если он ничего не подозревает, он ничего и не заметит
Но заметит, скорее всего, по тормозам системы (в предыдущем посте писал). А потом, почему уверены, что он воспользуется непременно task monitor? Я, например, почти всегда использую Process Explorer Руссиновича. Намного мощнее прога.
Цитата:
Сервисы видны в списке процессов
Это верно. Заметил потом, но исправлять не стал.
ShIvADeSt
Цитата:
...так как криво написаная программа может немало "счастья" принести
Скорее так и будет.
TeXpert
Цитата:
Почему способ плохой. Мне кажеться он очень лёгкий будет для системы. (Конечно если таймер не на 50мс ставить). Во вторых, так как он своего "друга" знает, то он знает уровень его знаний и сможет забить названия возможных таскменеджеров.
А хуки не такие уж и простые в реализации.
К тому же многоие антивирусы/фаэрволы не равнодушны к хукам и прочим внедрениям в другие процесы. А к FindWindow они лояльны (правда интернетексполрер не сильно)
Цитата:
А такой процес я прибью быстрей, чем он успеет поселиться - так как у самопальных есть маленькое отличие
Цитата:
Опять же плохое решение. А не проще ли ставить хук оболочки
Почему способ плохой. Мне кажеться он очень лёгкий будет для системы. (Конечно если таймер не на 50мс ставить). Во вторых, так как он своего "друга" знает, то он знает уровень его знаний и сможет забить названия возможных таскменеджеров.
А хуки не такие уж и простые в реализации.
К тому же многоие антивирусы/фаэрволы не равнодушны к хукам и прочим внедрениям в другие процесы. А к FindWindow они лояльны (правда интернетексполрер не сильно)
Цитата:
чтобы друг не заподозрил наличие программы назови ее svchost.exe
А такой процес я прибью быстрей, чем он успеет поселиться - так как у самопальных есть маленькое отличие
OdesitVadim
Цитата:
Сам подумай, грамотный подарок не должен себя обнаруживать, а исчезающий или "убегающий" task manager -- сразу заставит насторожиться. Это же просто!
Цитата:
Ничего подобного. А хук оболочки -- вообще прост, как две копейки. У него цель только уведомительная.
Цитата:
Хм, сам Microsoft практикует хуки, значит их программы -- тоже в мусорку?
Цитата:
Цитирую тебя же
Цитата:
Даже опытным, повтоюсь, трудно заметить такое -- потому как svchost.exe всегда висит в нескольких экземплярах.
Цитата:
Почему способ плохой. Мне кажеться он очень лёгкий будет для системы. (Конечно если таймер не на 50мс ставить). Во вторых, так как он своего "друга" знает, то он знает уровень его знаний и сможет забить названия возможных таскменеджеров
Сам подумай, грамотный подарок не должен себя обнаруживать, а исчезающий или "убегающий" task manager -- сразу заставит насторожиться. Это же просто!
Цитата:
А хуки не такие уж и простые в реализации
Ничего подобного. А хук оболочки -- вообще прост, как две копейки. У него цель только уведомительная.
Цитата:
К тому же многоие антивирусы/фаэрволы не равнодушны к хукам и прочим внедрениям в другие процесы
Хм, сам Microsoft практикует хуки, значит их программы -- тоже в мусорку?
Цитата:
А такой процес я прибью быстрей, чем он успеет поселиться - так как у самопальных есть маленькое отличие
Цитирую тебя же
Цитата:
Во вторых, так как он своего "друга" знает, то он знает уровень его знаний и сможет забить названия возможных таскменеджеров
Даже опытным, повтоюсь, трудно заметить такое -- потому как svchost.exe всегда висит в нескольких экземплярах.
Цитата:
Сам подумай, грамотный подарок не должен себя обнаруживать, а исчезающий или "убегающий" task manager -- сразу заставит насторожиться. Это же просто!
Он выведет его из себя
Цитата:
аже опытным, повтоюсь, трудно заметить такое -- потому как svchost.exe всегда висит в нескольких экземплярах.
но только не от имени пользователя
Цитата:
чтобы друг не заподозрил наличие программы назови ее svchost.exe
Хорошая идея: уровень знаний у моего "друга" ниже нижшего .
Страницы: 1
Предыдущая тема: Выход из процедуры в Delphi
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.