Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 914

/ вопрос открыт /

Здравствуйте!
Попытался скрыть программу от диспетчера задач Windows вот таким способом(см. приложение), но почему-то невышло. Что в мойм коде не так?

И второе, написал программу с WinAPI, которая отключает кнопку пуск. Запустил, нажал на кнопку \'Запретить\'(Button1) и всё вроде работает: при нажатии на пуск ничего не происходит(за исключением звукового сигнала), а если нажать на кнопку клавиатуры, то меню спокойно открывается! Как сделать так, чтобы пуск вообще ни на что не реагировал?

Приложение:
  1. program Project1;
  2.  
  3. uses
  4. Forms,Windows,
  5. Unit1 in 'Unit1.pas' {Form1};
  6.  
  7. {$R *.res}
  8.  
  9. var
  10. EStyle:integer;
  11.  
  12. begin
  13. Application.Initialize;
  14. EStyle:=Getwindowlong(application.Handle,GWL_exstyle);
  15. SetWindowLong(application.Handle,GWL_exStyle,EStyle or WS_EX_Toolwindow);
  16. Application.CreateForm(TForm1, Form1);
  17. Application.Run;
  18. end.
  19.  
  20. ***
  21.  
  22. unit Unit1;
  23.  
  24. interface
  25.  
  26. uses
  27. Windows, {Messages, SysUtils,} Variants, Classes, Graphics, Controls, Forms,
  28. Dialogs, StdCtrls;
  29.  
  30. type
  31. TForm1 = class(TForm)
  32. Button1: TButton;
  33. Button2: TButton;
  34. procedure Button1Click(Sender: TObject);
  35. procedure Button2Click(Sender: TObject);
  36. procedure FormCreate(Sender: TObject);
  37. private
  38. StartBtnWnd: hwnd;
  39. { Private declarations }
  40. public
  41. { Public declarations }
  42. end;
  43.  
  44. var
  45. Form1: TForm1;
  46.  
  47. implementation
  48.  
  49. {$R *.dfm}
  50.  
  51. procedure TForm1.Button1Click(Sender: TObject);
  52. begin
  53. EnableWindow(StartBtnWnd,False);
  54. end;
  55.  
  56. procedure TForm1.Button2Click(Sender: TObject);
  57. begin
  58. EnableWindow(StartBtnWnd,True);
  59. end;
  60.  
  61. procedure TForm1.FormCreate(Sender: TObject);
  62. begin
  63. StartBtnWnd:=FindWindow('Shell_TrayWnd',nil);
  64. end;
  65.  
  66. end.


Полушин Сергей Анатольевич Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Полушин Сергей Анатольевич (статус: Посетитель)
Вопрос отправлен: 11 сентября 2007, 21:04
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Полушин Сергей Анатольевич!
1. Этот код не скроет Вашу программу от диспетчера, быть может он и будет работать в Win98, но не в NT. Как добиться подобного в NT обсуждалось уже в вопрос #61, повторяться не буду. Этот код поможет скрыть процесс от Диспетчера задач, но не скроет его совсем: SoftIce по-прежнему будет его видеть, также как и многие rootkit remover'ы.

2. skip.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 12 сентября 2007, 08:05


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 11 сентября 2007, 21:37; участников в обсуждении: 1.
Полушин Сергей Анатольевич

Полушин Сергей Анатольевич (статус: Посетитель), 11 сентября 2007, 21:11 [#1]:

Кстати да, речь то идёт не о кнопке пуск, а о панели задач в целом
Полушин Сергей Анатольевич

Полушин Сергей Анатольевич (статус: Посетитель), 11 сентября 2007, 21:35 [#2]:

а, чёрт, сам разобрался! со вторым вопросом. Это ваще другая тема, нужно отключать не пуск, а "горячую клавишу".
Полушин Сергей Анатольевич

Полушин Сергей Анатольевич (статус: Посетитель), 11 сентября 2007, 21:37 [#3]:

Уважаемые эксперты, по поводу второго можете не напрягаться!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:32
Выполнено за 0.02 сек.