Вопрос по Delphi

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

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

    Artexoid Гость

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

    Barmutik Гость

    Под 95-97 всё просто ... SystemParametersInfo (97, 1, @OldVal, 0);

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

    Artexoid Гость

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

    zubr Гость

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

    Barmutik Гость

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

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

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

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

    ???? Гость

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

    Vint Гость

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

    Barmutik Гость

    Вот .. как раз нашёл в MSDN случано...

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

    zubr Гость

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

    Barmutik Гость

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

    zubr Гость

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

    Artexoid Гость

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

    zubr Гость

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

    lodyr Гость

    Поскольку программы написана на 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 Гость

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

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

    zubr Гость

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

    Shnur Гость

    // 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 Гость

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

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

    KmeT Гость

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

    R@bbit Гость

    Эти комбинации блокируются при включение режима экранной
    заставки вот и включай этот режим:
    // Включение режима
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
    // Выключение режима
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
    Должно работать.
     
Загрузка...
Похожие Темы - Вопрос по Delphi
  1. ApplePen
    Ответов:
    0
    Просмотров:
    80
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    97
  3. kartaman
    Ответов:
    0
    Просмотров:
    128
  4. Peter
    Ответов:
    4
    Просмотров:
    527
  5. di0d_
    Ответов:
    1
    Просмотров:
    442
Статус темы:
Закрыта.

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