Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.109.211] |
|
Сообщ.
#1
,
|
|
|
Если я в текстбоксе нажимаю некую комбинацию клавиш, а она зарегистрирована как хоткей другой прогой, я получаю только нажатия управляющих клавиш, а символьную нет (фокус уходит). Моя прога ещё что-то получает? Т.е. я могу определить без таймеров и отлова нажатий клавиш, что было нажато? Например, я нажимаю в текстбоксе Ctrl+Alt+Del...
|
Сообщ.
#2
,
|
|
|
насколько я помню, отлавливать Ctrl, alt, shift проще чем текстовые, и для этого используют аргумент button (забылся, это в Delphi походу, в VB "Shift As Integer") в методах. С стальными всё сложнее, по умолчанию можно получить лишь значение (состояние) одной текстовой клавиши. В подобных случаях я использую апи или DirectX
|
Сообщ.
#3
,
|
|
|
В теории код должен выглядить как:
If Shift = 2 + 4 And KeyCode = vbKeyDelete Then End но на практике ОС имеет больший приоритет по отношению к программе, и без сканирования состояния клавиш ОС не перебить |
Сообщ.
#4
,
|
|
|
Цитата BlackSun @ Например, я нажимаю в текстбоксе Ctrl+Alt+Del... И обламываешься. Троицу невозможно перехватить, это зашито в дальние глубины винды, ибо завязано на безопасность. Вспомни четвёрку — "нажмите Ctrl+Alt+Del для входа в систему"... так сделано как раз потому, что перехватить троицу невозможно, и её нажатие гарантирует, что окошко входа будет системным, а не подставой... а невозможно потому, что она перехватывается системой ещё на уровне ядра, сразу из драйвера клавиатуры. |
Сообщ.
#5
,
|
|
|
Цитата DarknessPaladin @ она перехватывается системой ещё на уровне ядра Волшебную тройку используют и до инициализации ОС (перезагрузка) |
Сообщ.
#6
,
|
|
|
Цитата VisualProg @ Волшебную тройку используют и до инициализации ОС (перезагрузка) ага. а потом ОС загружает свой драйвер клавиатуры, и с этого момента BIOS клавиатуру не обслуживает, и что делать по нажатию трёхкнопок— решает ОСь. |