![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вандальные юзеры [Win95/98]
Format © (2002-10-26 22:08:00)Приветствую! Пишу прогу(и) типа клиенты-сервер для админства в комп. классе. И на всех машинах стоит FAR в надежде на то, что не найдутся умные сволочи (учереждение "обязывает"), которые догадаются с помощью него отрубать моего клиента в списке процессов (который в FAR"e).
Дак вот, к чему я это. Какие средства (программные)существуют для защиты от отрубания проги? (понятно, что 100%-ной защиты нет).
Удалять FAR отвергается, т.к. это уже почти сделано.
RRoman (2002-10-27 10:39:00) [21]Два процесса одновременно отрубить невозможно (по крайней мере трудновато :)). Может поступить как обычно делается в таких случаях - пишется два процесса друг за другом следящие, пропадает один, другой его запускает и т.д.
Pat (2002-10-27 10:13:00) [22]>Senka (27.10.02 09:48)
такую прогу на тех же делфях можно накатать за пять минут
Диспечер задач тут ни при чем :-)
>Format
Это делается немного по-другому. Идет обмен информацией между сервером и клиентом. Если определенное время ответ от клиента не приходит, а тачка пингуется - значит прога не работает (выключили, зависла..). Тогда приходит злой админ и говорит детям, что так делать нехорошо :-))
Senka (2002-10-27 09:48:00) [23]Попробуй вот енто только для Win98 работоает:
В файле Alt_Ctrl_Del_Nevid1.dpr пропиши:
program Alt_Ctrl_Del_Nevid1;
uses
Forms,
Windows,
Alt_Ctrl_Del_Nevid in "Alt_Ctrl_Del_Nevid.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.
А в файле Alt_Ctrl_Del_Nevid.pas вот это:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall;
external "KERNEL32.DLL";
implementation
{$R *.dfm}
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;
end.
Проги не будет в диспетчере задач, или я не так понял задачу прости...
Эльф (2002-10-27 08:55:00) [24]2 Alex-eraser
Только что натворил подобную прогу. Против kill process в task manager не помогает ;)
Alex-eraser (2002-10-27 01:27:00) [25]Есть один немного кривоватый способ:
в обработчике OnClose главной формы впиши
action:=caNone;
Перед этой сторокой можешь вписать что-нибудь вроде
showmessage("Убери руки от проги, СВОЛОЧЬ!!!");
Format (2002-10-27 00:38:00) [26]Да, легче. Просто фар там вообще не нужен.
Я немного неправильно повернул тему. Ведь это можно сделать не только фаром, такую прогу на тех же делфях можно накатать за пять минут. Я вообще о защите программ, от которых требуется висеть всё время в памяти (работать). Как, например, Explorer сам себя запускает после аварийного завершения?
Пиноккио (2002-10-26 22:47:00) [27]Может легче удалить данный плагин, чем сносить весь ФАР
Директория FAR\Plugins\ProcList