Вопрос по Delphi

  • Автор темы Автор темы Artexoid
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
A

Artexoid

Помогите мне подалуйста, у меня такая проблема. Я не могу сделать так чтобы при запуске программы (написана на Delphi 6) она отключала (в Windows XP) реакцию системы на нажатие CTRL+ALT+DEL, CTRL+ESC, ALT+TAB. Помогите пожалуйста.
 
Под 95-97 всё просто ... SystemParametersInfo (97, 1, @OldVal, 0);

А вот под NT-based система .. вперёд писать VxD драйвер ... а там уж перехватывай и делай что хочеш...
 
Расскажите мне пожалуйста как это делается, никогда дела с драйверами не имел и незнаю как их писать и использовать. Объесните как можно подробнее если можно.
Заранее Вам спасибо.
 
Если без драйвера, то можно Hook на клаву поставить.
 
Hook не поможет перехватить system keystrokes.. вызов хуков в цепочке производится после обработки этих комбинаций (насколько мне не изменяет память)

А насчёт написания драйверов:

1. Берёш драйвер
2. Пишиш его
3. Используеш его

:D Как можно спрашивать такие вещи .. берутся книжки и читаются... :D
 
Artexoid
на w a s m . r u читай цикл статей Драйверы режима ядра: ...
например _http://wasm.ru/article.php?article=drvw2k16
А вообще Barmutik очень хорошо описал процедуру написания драйверов :D
 
Помогите мне подалуйста, у меня такая проблема. Я не могу сделать так чтобы при запуске программы (написана на Delphi 6) она отключала (в Windows XP) реакцию системы на нажатие CTRL+ALT+DEL, CTRL+ESC, ALT+TAB. Помогите пожалуйста.
Да уж... Под 95-98 всё достаточно просто... А уж НТ ;) ... Могу посоветовать одно: найди в нете справочник kuliba.chm, там достаточно много, что можно найти
 
Вот .. как раз нашёл в MSDN случано...

Для Windows NT/200 и т.д... можно поставить SetWindowsHookEx использовав параметр KEYBOARD_LL... т.е. Low Level что позволяет перехватывать системные комбинации ... самое главное что даже без использования DLL.
 
Вообще то по простухе можно в цикле появление соответствующего окна отслеживать и как только появится посылать ему WM_CLOSE
 
Хммм.. странно решение... вопрос был как отключить(перехватить) нажатие клавиш .. а не как закрыть соответствующее окно...
 
Barmutik
Помогите мне подалуйста, у меня такая проблема. Я не могу сделать так чтобы при запуске программы (написана на Delphi 6) она отключала (в Windows XP) реакцию системы на нажатие CTRL+ALT+DEL, CTRL+ESC, ALT+TAB.
Как я понимаю, человеку надо, чтобы юзер при нажатии CTRL+ALT+DEL не мог к примеру просмотреть процессы, или убить какой нить процесс. А если это так, то почему нельзя как только появится соответствующее окно, его убить.
 
Большое спасибо за помощ!!!
Я обязательно еще что-нибудь спрашу :( !!!
 
Artexoid
Интересно было бы узнать решил ли ты свою проблему, а если решил то как.
 
Помогите мне подалуйста, у меня такая проблема. Я не могу сделать так чтобы при запуске программы (написана на Delphi 6) она отключала (в Windows XP) реакцию системы на нажатие CTRL+ALT+DEL, CTRL+ESC, ALT+TAB. Помогите пожалуйста.
Поскольку программы написана на Delphi, то используй компонент
DWinlock v1.1 for Delphi 4,5,6,7 (23-9-2004) 238 KB
Компонент предназначенный для ограничения доступа к окнам Windows (от 95 до XP). Это делается путем блокирования функциональных клавиш (например Ctrl+Alt+Del).
А береш его FlashGet'ом отсюда:
УРЛ: _http://soft.0zones.com/SoftDown.asp?ID=8739
Архив: DWinlock.v1.1.For.Delphi4567.rar
 
У меня тут был завёлся классный вирус ... так вот он что б себя прятать и в процессах и на диске свои файлы использует
rootkit технологию .. масса информации по этому в инете... может это ещё поможет ..

Самое прикольное что его и антивирусы не лечили потому как они во время сканирования диска его просто на диске не видели...
 
Самое прикольное что его и антивирусы не лечили потому как они во время сканирования диска его просто на диске не видели...
Антивирусы умеют находить только известные вирусы. А что Касперского надурить ничего не стоит. Я как то со скриптом-вирусом экспериментировал. Сначала поменял имя файла, Касперский еще сработал, но когда поменял имя процедуры, Касперский сдох.
 
// CTRL+ALT+DEL
var
i:integer;
begin
i:=0;
SystemParametersInfo(SPI_SCREENSAVERUNNING, 1, @i, 0);
end;

//ALT+TAB
var
i:integer;
begin
i:=0;
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @i, 0);
end;
 
Между прочим, от ALT+TAB программа очень даже просто скрывается:

Код:
procedure TForm1.Button1Click(Sender: TObject); 
begin 
ShowWindow(Handle, SW_HIDE); 
ShowWindow(Application.Handle, SW_HIDE); 
end;
 
Станадартным решением данной проблемы является перехват апи функции NtQuerySystemInformation.Скрывая при этом наше приложени от Диспетчера задач. При реализации внедрении перехватывющй длл через хооки не требует админских прав.
 
Эти комбинации блокируются при включение режима экранной
заставки вот и включай этот режим:
// Включение режима
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
// Выключение режима
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
Должно работать.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!