Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизКак выкинуть программу из списка программ (ctrl+alt+del)? Найти похожие ветки
← →
^SANYA (2002-07-23 20:04) [0]Эдакий "шпион" нужен...
Просьба не материть!
Заранее спасибо!
← →
Anatoly Podgoretsky (2002-07-23 20:26) [1]Если шпион не нужен, то зачем выкидывать?
← →
^SANYA (2002-07-23 20:31) [2]Шпион-то и нужен!!!
← →
VID (2002-07-23 20:59) [3]В UBPFD есть, кажется в разделе "Управление ОС"
← →
TTCustomDelphiMaster (2002-07-23 21:18) [4]Application.Terminate;-)
← →
VID (2002-07-23 22:13) [5]
> TTCustomDelphiMaster © (23.07.02 21:18)
> Application.Terminate;-)
Просили же не материться ;)
← →
Robin (2002-07-24 17:01) [6]Вот тебе ссылка на исходник:
http://www.sources.ru/delphi/system/SHunter.zip
Только-что сам проверил скачав: все работает.
← →
Игорь Шевченко (2002-07-24 17:10) [7]Убивать надо программистов, которые такие исходники пишут :-)
← →
^SANYA (2002-07-24 23:50) [8]Да уж....ссылка просто зашибись! Полностью согласен с Игорем Шевченко!!! Но что ж поделать, придётся начать с зачистки кода :(
Кстати, чуть не забыл, БООЛЬШОЕ СПАСИБО за ссылку, т.к. там есть ответ на мой вопрос, хоть и в мусоре...
← →
Denvor (2002-07-25 02:28) [9]Отрубить показ файла в Ctrl-Alt-Del
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external "KERNEL32.DLL";implementationprocedure 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;
← →
MARcoDEN (2002-07-25 07:34) [10]А можно просто подавить реакцию Windows на комбинацию Ctrl+Alt+Del. А для этого (как ни странно), достаточно активировать режим скринсейвера, вот как это делается:
// Включение режима
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
// Выключение режима
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
← →
Denvor (2002-07-26 01:08) [11]Я бы в таком случае заинтересовался бы очень наглым приложением, которое начало хозяйничать на моём компе, вычислил бы его, открыв обыкновенный Excel и в меню "Справка>О проргамме>О системе> Запущенные приложения" узнал бы его имя и местоположение.Это и была бы "ошибка резидента"!
← →
^SANYA (2002-07-26 02:09) [12]Denvor прав, проверил - "ошибка резидента"!!! Что делать????
← →
Denvor (2002-07-26 02:49) [13]Что делать? Что делать?
Есть у меня один ценный пример из одного FAQ этого сайта, где-то год назад скачанного, который защитит твою программу и от Ctrl-Alt-Del и от TaskBar"a. Ну а с Excel не бойся - размести свою программу в папке Виндоуз и назови, типа MNTask. Визуально будет трудно найти. Excel ведь не к таскбару обращается, а к ОС, которая выдаёт ему все потоки. От них с помощью API не спрячешься.
Вот примерчик того, что я обещал:
"Внеся эти изменения в свой проект вы получите приложение, которое не видно в TaskBar и на него нельзя переключиться по Alt-Tab
program Project1;uses Forms, Windows, Unit1 in "Unit1.pas" {Form1};{$R *.RES}var ExtendedStyle : integer;begin Application.Initialize; ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE); SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW {AND NOT WS_EX_APPWINDOW}); Application.CreateForm(TForm1, Form1); Application.Run;end.
Будь готов к тому, что если пpи попытке закpытия пpиложения в OnCloseQuery или OnClose выводится вопpос о подтвеpждении, то могут быть пpоблемы с автоматическим завеpшением пpогpаммы пpи shutdown - под Win95 пpосто зависает, под WinNT не завеpшается.
Очевидно, что сообщение выводится, но его не видно (пpичем SW_RESTORE не сpабатывает).
Решение - ловить WM_QueryEndSession и после всяких завеpшающих действий и вызова CallTerminateProcs выдавать Halt.
А вот как отрубить показ файла в Ctrl-Alt-Del
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external "KERNEL32.DLL";implementationprocedure 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;"
Желаю удачи
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c