| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > ctrl+alt+del |
| Автор: SeT 13.4.2005, 11:09 |
| Не знаете, как заблокировать эти кнопки? В 98 умею, а в ХР не получается. Помогите-е-е!!! |
| Автор: Mephisto 13.4.2005, 11:21 |
| Необходимо создать эмуляцию экранной заставки! Зайди на Гугел, и фключи поиск по ScreenSaver VB. Что-нить да появится, а вообще, если можешь, выложи сюда код для 98! Может мы поправим и будет у тебя для ХР. |
| Автор: efedron 13.4.2005, 12:19 |
| заблокировать контрол-аль-дел можно только на 9х (функция RegisterServiceProcecc если не ошибаюсь), а вот в NT эта комбинация работает всегда. |
| Автор: Exception 13.4.2005, 12:20 | ||
И не получится. В XP это дырка заделана. В 98 нужно вызывать SystemParametresInfo, как-то так |
| Автор: Akina 13.4.2005, 12:46 |
| В 2000-ХР-2003 система независимо ни от чего самостоятельно обрабатывает это нажатие. Впрочем, надо отдать ей должное, по цепи событие все-таки передается - т.е. если отказом закрыть окно, то нажатие попадает в активное приложение (где обычно умирает за ненадобностью). Единственная возможность - свой драйвер работы с портом периферии (клавиатуры). |
| Автор: efedron 13.4.2005, 21:27 |
| ой, прошу прощения - перепутал, в 9х контрол-альт-дел блокируется функцией SystemParametersInfo с параметром ..как-то SCREENSAVER_ACTIVE (что-то очень похожее), а RegisterServiceProcess - скрывает процесс из диспетчера 9х |
| Автор: Mephisto 14.4.2005, 15:43 | ||
А как же ScreenSaver'ы. В них тоже можно нажать волшебные клавишы? Даже когда их под пароль ставишь? |
| Автор: Akina 14.4.2005, 16:01 | ||
Именно так как я сказал выше - скринсэйвер сам не получает этого нажатия, его обрабатывает ядро ОС. И при необходимости передает активному приложению (скринсэйверу) |
| Автор: Mephisto 15.4.2005, 23:17 | ||||
Ну, так вышенаписаный код как раз и не позволяет снять задачу со скринсэйвера если там (вдруг) поставлен пароль! Но я лично не заю как это в нт реализовано. Мне самому интересно! |
| Автор: Exception 16.4.2005, 12:10 |
| Так система передает c+a+d приложению? Если да, можно просто снять таскмэнэджер |
| Автор: efedron 18.4.2005, 14:07 | ||
как я понял система не передает приложению контрол альт дел, поскольку конструкция типа:
не работает, хотя если убрать любое из условий, то все в порядке... |
| Автор: Akina 18.4.2005, 14:26 | ||
Есть такая программуська, как VMWare... Так вот, если в виртуальной машине прессануть CAD, то есссно Винда самостоятельно на это дело реагирует, выдавая стандартное окно на 6 пунктов... так вот, если его сбросить ESC-ейпочкой, Варя тут же тебе сообщает что зря ты с-под нее жал CAD, потому как хост-система это выловит первой (что собсно и наблюлось) - но ить и Варе нажатие досталось... а она своего драйвера на клаву железной рукой не ставит - чисто хуки... кстати, если есть желание великое разобаться, то сделай ЕХЕ, реагирующий на нажатие Del и выводящий состояние при этом шифтов, и в скринсэйверы его... любопытно что при этом накопается... |
| Автор: Exception 19.4.2005, 11:08 |
| Между прочим, можно сделать так: при нажатии c+a твоя прога чуть подождет, а потом поищет окно диспетчера и если оно есть, заклозит его Добавлено @ 11:10 Ведь c+a она ловит? |
| Автор: Black_Star 19.4.2005, 15:37 |
| Есть такая ф-я SetKeyboardState() кажись. С помощью ее можно вообще всю клаву отрубить |
| Автор: efedron 20.4.2005, 11:39 | ||
| Black_Star ну, теоретически, если каждую милисекунду вызывать ее с параметром, что ни одна клавиша не нажат, то возможно, хотя че-то сомневаюсь я на счет c+a+d Run-time error диспетчер-то заклоузить - это дело пустяковое, основное - это победить системное меню, которое появляется после нажатия оных клавиш Akina
да хоть в сервисы! появляется сисменю виндовое, а программка молчит..я так сразу для проверки сделал - безуспешно.. |