Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2009, 22:57   #1
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию Блокировка диспетчера задач

Пробовал запускать такой код
Код:
var
  Form1: TForm1;

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;
stdcall; external 'KERNEL32.DLL';

function ShowHideInCad(ProcessID: Integer; Show: Boolean): boolean;
function TakeProcessID(WindowTitle: string): Integer;
function TakeMyApplicationProcessID: Integer;


implementation

{$R *.dfm}

//Получение дескриптора процесса любого окна, по заголовку этого окна

function TakeProcessID(WindowTitle: string): Integer;
var
  WH: THandle;
begin
  result := 0;
  WH := FindWindow(nil, pchar(WindowTitle));
  if WH <> 0 then
    GetWindowThreadProcessID(WH, @Result);
end;

//Получение дескриптора процесса собственного приложения

function TakeMyApplicationProcessID: Integer;
begin
  Result := GetCurrentProcessID;
end;

//Отображение/Скрытие процесса в CTRL+ALT+DEL

function ShowHideInCAD(ProcessID: Integer; Show: Boolean): Boolean;
begin
  result := true;
  try
    //если show = true , то отображаем процесс в CAD, иначе - прячем
    if Show = True then
      RegisterServiceProcess(ProcessID, 0)
    else
      RegisterServiceProcess(ProcessID, 1);
  except result := false;
  end;
end;




///не срабатывает
procedure TForm1.DisableTaskMgr(Disable: Boolean);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Software', True);
  reg.OpenKey('Microsoft', True);
  reg.OpenKey('Windows', True);
  reg.OpenKey('CurrentVersion', True);
  reg.OpenKey('Policies', True);
  reg.OpenKey('System', True);
  if Disable then
    reg.WriteString('DisableTaskMgr', '1') //блокиреум
  else
    reg.WriteString('DisableTaskMgr', '0'); //разблокируем
  reg.CloseKey;
end;




procedure TForm1.Button1Click(Sender: TObject);
var
  OK: boolean;
  Point:TPoint;
begin
DisableTaskMgr(true);//блокировать диспетчер задач

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowHideInCad (TakeMyApplicationProcessID, False);
end;
При этом выходит ошибка Точка входа в процедуру RegisterServiceProcess не найдена в библиотеке DLL KERNEL32.DLL

Но если честно интересует больше не работоспособность данного кода, а возможно ли что ошибка вызова диспетчера задач Диспетчер задач отключен администратором связана с этим кодом.
Пробовал изменять значение в реестре на 0, но ничего не дало . Потом смотрел процессы через другой диспетчер (ProcessPatrol2 и DarkSpy Rootkit), но вроде в процессах нет ничего лишнего.
Кстати на форуме нашел как исправить это http://programmersforum.ru/showthread.php?t=47923, но вопрос это возможно из-за этого кода, или система заражена вирусом.
Вообщем вопрос такой : Это возможно из за кода или это совпадение и это вирус такой?

Последний раз редактировалось Ecosasha; 07.06.2009 в 23:11.
Ecosasha вне форума Ответить с цитированием
Старый 08.06.2009, 17:24   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Тема боян!!! Вот здесь написано как это сделать
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Розблокирование диспетчера задач LuckyPasha Windows 2 02.05.2009 21:03
Блокировка меню пуск и панели задач !!!! Elektro Безопасность, Шифрование 6 21.04.2009 13:06
Предопределить действия "Диспетчера задач" Air Общие вопросы Delphi 1 01.03.2008 08:44
Как скрыть процесс в списке процессов диспетчера задач? SeRhy Помощь студентам 6 02.02.2008 10:28
скрыть процесс от диспетчера задач krem Win Api 2 23.07.2007 13:12