Как победить специальные возможности?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Как победить специальные возможности?

Сообщение arthur2 » 30.01.2009 (Пт) 11:27

Если нажать на шифт 5 раз подряд, включается залипание клавиш. Если нажать и удерживать шифт 8 секунд, включается фильтрация ввода.

Как предотвратить такое поведение Windows? Мне нужно, чтобы эти сочетания не работали у меня в программе.

Пробовал "разбавлять" пятикратное нажатие шифта эмуляцией нажатия других клавиш - ни SendKey, ни keybordevents винду не обманули. Что бы я ни "нажимал" виртуально, специальные возможности срабатывают только от настоящих нажатий. Может, я делал как-то не так?

Способ временного отключения специальных возможностей не нравится - если они включены у пользователя, то пусть остаются включенными (впрочем, если ни чего другого придумать не удастся, то тогда: а как их отключить временно?)
Артур
 
   

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Как победить специальные возможности?

Сообщение Денис » 30.01.2009 (Пт) 12:04

Боюсь вызвать гнев профессионалов, но если такой способ: на своем компе установить программу-монитор реестра, после чего отключить спецвозможности, и в мониторе увидеть, какие ключи изменяются. А потом уже своей программой жонглировать этими ключами на пользовательских машинах.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как победить специальные возможности?

Сообщение iGrok » 30.01.2009 (Пт) 17:47

Никак. Если они зачем-то включены у пользоателя - то они ДОЛЖНЫ работать везде. Иначе вообще теряется их смысл.
Другой вопрос, что включены они по умолчанию, и обычно юзеры об этом даже не подозревают.

Как вариант - подсказать пользователю, как их отключить. Например, в справке программы.
label:
cli
jmp label

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как победить специальные возможности?

Сообщение arthur2 » 30.01.2009 (Пт) 21:34

Никак. Если они зачем-то включены у пользоателя - то они ДОЛЖНЫ работать везде. Иначе вообще теряется их смысл.

Так и я о том же :)
Способ временного отключения специальных возможностей не нравится - если они включены у пользователя, то пусть остаются включенными


Я и не хочу их отключать. Мне нужно просто одномоментно их обойти. Идеально было бы - просто разбавить пятикратное нажатие какой-нибудь другой клавишей, но, к сожалению, это почему-то не срабатывает :(
Кстати, если сэмулировать пятикратное нажатие шифта, залипание не включается - винда реагирует в этом смысле только на настоящие нажатия. Ну или я чего-то не так делал.

Денис писал(а):после чего отключить спецвозможности, и в мониторе увидеть, какие ключи изменяются

Изменяется вот этот ключ:
Код: Выделить всё
[HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
"Flags"="122"

С 122 меняется на 126. Но проблема в том, что простое изменение ключа не ведёт к немедленному изменению залипания. Действовать начинает то ли после перезагрузки, то ли ещё когда...

Позже:
Вопрос решён :) Вот здесь:
viewtopic.php?p=6711347#p6711347
Последний раз редактировалось arthur2 02.02.2009 (Пн) 8:35, всего редактировалось 1 раз.
Артур
 
   

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Как победить специальные возможности?

Сообщение SSecurity » 02.02.2009 (Пн) 3:34

после установки ключ в нужное положение и пользователю говоришь, что для применения настроек нужно перегрзиться:)))))))))
а вообще винда может на уровне ядра интересоваться многократным нажатием шифта не важно что там идет ... главное чтоб много нажатий в определенный период времени :))
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как победить специальные возможности?

Сообщение arthur2 » 02.02.2009 (Пн) 8:15

Я же говорю:
Вопрос решён :) Вот здесь:
http://bbs.vbstreets.ru/viewtopic.php?p=6711347#p6711347

:)
Артур
 
   


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 52

    TopList  
cron