![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Старый затасканый вопрос: как? Уважаемые гуру, пожалуйста, не надо унижать, стибать, отправлять в F.A.Q., закрывать тему. Я прочёл всё, что выдал поиск на форуме на слово keyboard и не только на этом форуме. Везде эти темы есть, там что то написано, но это не работает. Мне надо просто заблочить клаву. Я не вирус пишу, не троян, я вообще ничего подобно никогда не писал. Мне это надо исключительно для учебных целей (студент, проходящей тестирование, не должен иметь возможность работать с другими прогами, переключаться между задачами и т.д.). В уже существующих темах этот вопрос не рассмотрен до конца! Неужели это секрет какой? Всего то, насколько я понял из прочитанного, нужно подключить правильно написанный для этой цели dll. Ответьте пожалуйста на этот вопрос грамотно и такой вопрос больше не возникнет.
С уважением, в надежде на понимание... |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
вот это стандартными ср-вами вроде бы не сделать. Alt-Tab не заблокируешь... хотя возможно я ошибаюсь) можно написать LowLevel hook на клаву и не пропускать "ненужные" клавиши (сочетания клавиш). з.ы. ищи по WH_KEYBOARD_LL -------------------- There are always someone smarter than you... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
А зачем блокировать клавиатуру?
Просто постоянно проверять GetForegroundWindow и, если оно не твоё, то устанавливай сразу своё SetForegroundWindow. Ну и диспетчер задач заблокировать можно, чтоб закрыть не могли. |
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: нет Всего: 24 |
А может кто подскажет софтину для блокировки клавиатуры? А то кот постоянно по клаве бегает, надоело уже. |
|||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
А можно по подробней, пожалуйста. Чувствую это просто отличная идея! likehood, если на клаве есть кнопка fn, то fn+f11 =) |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
|
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: нет Всего: 24 |
||||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Snowy, тот код, что ты привёл не работает (по крайней мере так, как мне надо). А LockWorkStation выкидывает меня в тему выбора узеров(типа: User1, работает 4 проги).
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Ну так в этом и смысл...
Если решил пойти куда-то помимо текущего окна, то комп блокируется. Чем не решение |
|||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
это не решение...придётся вернуться к блокированию клавы! Ну скажите кто нибудь как это сделать?!!!
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
А что тебе даст блокировка клавы?
Можно и без клавы и код набросать и диск отформатировать. Цель-то какая? |
|||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Научный руководитель хочет, чтобы во время прохождения тестирования студент не имел возможности работать с другими приложениями. Моя программа работает в полноэкранном режиме. В проге есть виртуальная клава. Так что мне нужно откл клаву.
|
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
А если Действительно нужно клаву отрубить? Тогда нужно Хуки писать (на мышь тоже)? Или все-таки можно без етого обойтись? --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Ну так поставь хук на клаву, как уже советовали выше, во время перехвата сообщения смотри какой окне в фокусе, если не твоё, то возвращай из функции callback в хуке 0 или что там, чтобы сообщение дальше не шло вообщем) Это сообщение отредактировал(а) W4FhLF - 29.4.2007, 09:03 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
W4FhLF,
А без Хука никак? --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Отрубать мышь не надо, она активно используется для работы с моим приложением. А что касательно "поставь хук", так это я и так знаю, знаю что надо поставить низкоуровневый хук, который будет запускаться из dll и т.д. Много по этому поводу читал и пробовал на своём компе. Но, как я писал в первом посте, существует куча подобных топиков, но проблема там не решена, все только советуют что сделать. А мне нужно конкретное решение поставленной задачи - отрубить клавиатуру.
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
||||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Такого рода советы не нужны, если не знаешь как сделать, то и писать не надо!
|
|||
|
||||
| BigTon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Я нашёл решение своей задачи и для будующих соискателей выкладываю код:
Код работает, только что проверил и теперь использую. Но CAD он не отключает. В принцепе это не проблема и мне Task Manager не мешает. |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Спасибо... Надо попробовать... Если получится, то напишу... А не получится, то все равно напишу!!!
--------------------
Я не волшебник... я только учусь... |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
13 - это и есть WH_KEYBOARD_LL. а самому то же самое написать? в MSDN ВСЕ расжевано по полочкам. а по поводу SPI... эти вроде только для Win9x -------------------- There are always someone smarter than you... |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 19 Всего: 95 |
На всякий случай для будущих поколений запощу сюда код из своего когда-то написанного проекта, который отрубает только системные клавиши (Alt-Tab, Ctrl-Esc, Win etc...), оставляя программе возможность работать с клавиатурой (только под NT... и без отрубания CAD - для него хуком не обойтись):
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Уважаемые Модераторы Я долго и мучительно писал код который отрубает клаву, блокирует все системные сочетания в том числе ctrl-alt-del, alt-tab,ctrl-esc, могу поделится. Только плиз сделайте меня опытным.
|
|||
|
||||
| ne0n |
|
|||
|
PlayBoy ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 5.8.2005 Где: Н.Новгород Репутация: 4 Всего: 11 |
RinOSpro, если хочешь поделиться своими работами то в "Арсенал форумистов" А просто так "Опытным" тебя не сделают...!!! а если так уж тебе горит поменять свой статус заплптии 1 бакс и меняй!!!в настройках профиля сам найдешь!!! з.ы. Простите меня за грубость конечно, но это все-таки форум, а не базар где бы мы торговались...и говорили я вот тебе помогу тока ты мне плюсик поставь...или если меня сделают модератором! |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
короче я это делаю с помощью библиотеки inpout32.dll она нужна чтобы на прямую записывать в порты. Если кто даст пример доступа к портам в XP, то мой пример отключения клавы всего 2 строки кода. Но тут загвоздка клавиатура должна быть ps/2 т.к. мы обрашаемся на прямую к портам не через драйвер.
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
RinOSpro, а смысл тогда кода? у меня вот например везде клавы usbшные...
-------------------- There are always someone smarter than you... |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Да ладно везде ну смотря зачем ему клаву лочить если для трояна то не скажу как. А если для дела тогда да. У меня такая не обходимость возникла когда я писал тестер и нужно было отрубить клаву (чтоб не лазили куда не надо) и оставить мышь. А кто мешает найти порты используемые устройством да хоть usb. Просто тогда у меня еще знаний не хватало да и щас )) не знаю смогу ли. А вообще алгоритм такой. найти порт клавы или мыши и послать код. Только вопрос с хрюшей еще остался писать в i/o порты. |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Завтра примерчик дам для ps/2
|
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Как и обещал вот.
если что + слева от вас Присоединённый файл ( Кол-во скачиваний: 46 )
Keyboard_Off.rar 13,43 Kb |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Странно ни одного отзыва...
|
|||
|
||||
| Akinak |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 29.10.2010 Репутация: нет Всего: нет |
RinOSpro, Спасибо!!! всеработает. только вот такой вот вопрос, почему после того как производишь разблокировку, клава проделывает всё то что на ней нажимали. нельзя ли это как нибудь убрать?
Мышь наверняка тоже самое будет проделывать... |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |