1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Вопрос по Delphi

Тема в разделе "Delphi - Система", создана пользователем Artexoid, 25 янв 2005.

Статус темы:
Закрыта.
  1. Artexoid

    Artexoid Гость

    Репутация:
    0
    Помогите мне подалуйста, у меня такая проблема. Я не могу сделать так чтобы при запуске программы (написана на Delphi 6) она отключала (в Windows XP) реакцию системы на нажатие CTRL+ALT+DEL, CTRL+ESC, ALT+TAB. Помогите пожалуйста.
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Под 95-97 всё просто ... SystemParametersInfo (97, 1, @OldVal, 0);

    А вот под NT-based система .. вперёд писать VxD драйвер ... а там уж перехватывай и делай что хочеш...
     
  3. Artexoid

    Artexoid Гость

    Репутация:
    0
    Расскажите мне пожалуйста как это делается, никогда дела с драйверами не имел и незнаю как их писать и использовать. Объесните как можно подробнее если можно.
    Заранее Вам спасибо.
     
  4. zubr

    zubr Гость

    Репутация:
    0
    Если без драйвера, то можно Hook на клаву поставить.
     
  5. Barmutik

    Barmutik Гость

    Репутация:
    0
    Hook не поможет перехватить system keystrokes.. вызов хуков в цепочке производится после обработки этих комбинаций (насколько мне не изменяет память)

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

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

    :D Как можно спрашивать такие вещи .. берутся книжки и читаются... :D
     
  6. ????

    ???? Гость

    Репутация:
    0
    Artexoid
    на w a s m . r u читай цикл статей Драйверы режима ядра: ...
    например _http://wasm.ru/article.php?article=drvw2k16
    А вообще Barmutik очень хорошо описал процедуру написания драйверов :D
     
  7. Vint

    Vint Гость

    Репутация:
    0
    Да уж... Под 95-98 всё достаточно просто... А уж НТ ;) ... Могу посоветовать одно: найди в нете справочник kuliba.chm, там достаточно много, что можно найти
     
  8. Barmutik

    Barmutik Гость

    Репутация:
    0
    Вот .. как раз нашёл в MSDN случано...

    Для Windows NT/200 и т.д... можно поставить SetWindowsHookEx использовав параметр KEYBOARD_LL... т.е. Low Level что позволяет перехватывать системные комбинации ... самое главное что даже без использования DLL.
     
  9. zubr

    zubr Гость

    Репутация:
    0
    Вообще то по простухе можно в цикле появление соответствующего окна отслеживать и как только появится посылать ему WM_CLOSE
     
  10. Barmutik

    Barmutik Гость

    Репутация:
    0
    Хммм.. странно решение... вопрос был как отключить(перехватить) нажатие клавиш .. а не как закрыть соответствующее окно...
     
  11. zubr

    zubr Гость

    Репутация:
    0
    Barmutik
    Как я понимаю, человеку надо, чтобы юзер при нажатии CTRL+ALT+DEL не мог к примеру просмотреть процессы, или убить какой нить процесс. А если это так, то почему нельзя как только появится соответствующее окно, его убить.
     
  12. Artexoid

    Artexoid Гость

    Репутация:
    0
    Большое спасибо за помощ!!!
    Я обязательно еще что-нибудь спрашу :( !!!
     
  13. zubr

    zubr Гость

    Репутация:
    0
    Artexoid
    Интересно было бы узнать решил ли ты свою проблему, а если решил то как.
     
  14. lodyr

    lodyr Гость

    Репутация:
    0
    Поскольку программы написана на 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
     
  15. Barmutik

    Barmutik Гость

    Репутация:
    0
    У меня тут был завёлся классный вирус ... так вот он что б себя прятать и в процессах и на диске свои файлы использует
    rootkit технологию .. масса информации по этому в инете... может это ещё поможет ..

    Самое прикольное что его и антивирусы не лечили потому как они во время сканирования диска его просто на диске не видели...
     
  16. zubr

    zubr Гость

    Репутация:
    0
    Антивирусы умеют находить только известные вирусы. А что Касперского надурить ничего не стоит. Я как то со скриптом-вирусом экспериментировал. Сначала поменял имя файла, Касперский еще сработал, но когда поменял имя процедуры, Касперский сдох.
     
  17. Shnur

    Shnur Гость

    Репутация:
    0
    // 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;
     
  18. Poseidon

    Poseidon Гость

    Репутация:
    0
    Между прочим, от ALT+TAB программа очень даже просто скрывается:

    Код (Text):
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ShowWindow(Handle, SW_HIDE);
    ShowWindow(Application.Handle, SW_HIDE);
    end;
     
  19. KmeT

    KmeT Гость

    Репутация:
    0
    Станадартным решением данной проблемы является перехват апи функции NtQuerySystemInformation.Скрывая при этом наше приложени от Диспетчера задач. При реализации внедрении перехватывющй длл через хооки не требует админских прав.
     
  20. R@bbit

    R@bbit Гость

    Репутация:
    0
    Эти комбинации блокируются при включение режима экранной
    заставки вот и включай этот режим:
    // Включение режима
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
    // Выключение режима
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
    Должно работать.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей