Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/30: Рейтинг темы: голосов - 30, средняя оценка - 4.87
9 / 9 / 3
Регистрация: 14.03.2013
Сообщений: 107

Отловить нажатие клавиш глобально

17.01.2015, 22:30. Показов 6635. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как можно реализовать ответ на нажатие кнопки клавиатуры если окно неактивно?
подскажите пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2015, 22:30
Ответы с готовыми решениями:

Глобально отследить нажатие комбинации клавиш
Конкретно Shift+k. Хотелось бы какой-то глобальный обработчик события (несколько форм). Моя программа сидит в трее и если из него можно...

Отловить нажатие клавиш в KeyPress
Здравствуйте. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ...

Нажатие клавиш вне формы (глобальный перехват сочетания клавиш)
Всем доброго времени суток! Задумал сделать значок раскладки клавы, но беда в том, что если потерян фокус приложения, то значок не...

7
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
18.01.2015, 14:16
Лучший ответ Сообщение было отмечено сергей нт как решение

Решение

Цитата Сообщение от сергей нт Посмотреть сообщение
если окно неактивно
Вставь мой код в форму, сверни окно и по-нажимай CTRL+A,C,V,X
и посмотри что происходит... На панели задач увидишь как меняется заголовок окна, когда окно НЕ АКТИВНО...
Надеюсь ответил на вопрос...

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Class Form1
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Do
            Application.DoEvents()
            If My.Computer.Keyboard.CtrlKeyDown And GetAsyncKeyState(&H41) < 0 Then 'нажата CTRL+A
                Me.Text = "CTRL+A"
            ElseIf My.Computer.Keyboard.CtrlKeyDown And GetAsyncKeyState(&H58) < 0 Then 'нажата CTRL+X
                Me.Text = "CTRL+X"
            ElseIf My.Computer.Keyboard.CtrlKeyDown And GetAsyncKeyState(&H43) < 0 Then 'нажата CTRL+C
                Me.Text = "CTRL+C"
            ElseIf My.Computer.Keyboard.CtrlKeyDown And GetAsyncKeyState(&H56) < 0 Then 'нажата CTRL+V
                Me.Text = "CTRL+V"
            Else 'Отпустили Клавиши
                Me.Text = Nothing
            End If
        Loop 'Тут Луп всегда вертиться... Если нужно его отключать иногда - поставь ему условие... Это уже другая тема.
    End Sub
End Class
PS: Коды клавиш в интернете найдешь...
6
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
18.01.2015, 14:16
Лучший ответ Сообщение было отмечено сергей нт как решение

Решение

Цитата Сообщение от Yury Komar Посмотреть сообщение
Коды клавиш в интернете найдешь...
Порылся у себя, нашел... Лови:
Кликните здесь для просмотра всего текста
ПОЛНЫЙ СПИСОК КОДОВ КЛАВИШ
======================================== ===============================
&H1 Левая кнопка мыши.
&H2 Правая кнопка мыши.
&H3 Обработка комбинации клавиш*Control-Break.*
&H4 Средняя кнопка мыши (трехкнопочная мышь).
&H5 Windows 2000/XP: кнопка*X1*мыши.
&H6 Windows 2000/XP: кнопка*X2*мыши.
&H7 Не определен.
&H8 Клавиша*BACKSPACE*(возврата на позицию).
&H9 Клавиша*TAB*(табуляции).
&H0A-&H0B Зарезервированы.
&H0C Клавиша*CLEAR.
&H0D Клавиша*ENTER*(ввод).
&H0E-&H0F Не определены.
&H10 Клавиша*SHIFT*(вспомогательная).
&H11 Клавиша*CTRL*(управления).
&H12 Клавиша*ALT*(навигации по меню).
&H13 Клавиша*PAUSE*(останов работы).
&H14 Клавиша*CAPS*LOCK*(переключатель регистра символов).
&H15 Редактор метода ввода* (IME)) режим*Kana.
&H15 Редактор метода ввода (IME) режим*Hanguel*
(поддерживается для совместимости; используется*VK_HANGUL).
&H15 Редактор метода ввода (IME) режим*Hangul.
&H16 Не определен.
&H17 Редактор метода ввода (IME) режим*Junja.*
&H18 Редактор метода ввода (IME) заключительный режим.
&H19 Редактор метода ввода (IME) режим*Hanja.

Редактор метода ввода (IME) режим*Kanji.
&H1A Не определен.
&H1B Клавиша*ESC*(отмены).
&H1C Преобразованный*IME.
&H1D Не преобразованный*IME.
&H1E Принятый*IME.
&H1F Запрос изменить режим*IME.
&H20 Клавиша*SPACEBAR*(пробел).
&H21 Клавиша*PAGE*UP*(страницей выше).
&H22 Клавиша*PAGE*DOWN*(страницей ниже).
&H23 Клавиша*END*(в конец текста).
&H24 Клавиша*HOME*(в начало текста).
&H25 Клавиша*LEFT*ARROW*(стрелка влево).
&H26 Клавиша*UP*ARROW*(стрелка вверх).
&H27 Клавиша*RIGHT*ARROW*(стрелка вправо).
&H28 Клавиша*DOWN*ARROW*(стрелка вниз).
&H29 Клавиша*SELECT*(выбор).
&H2A Клавиша*PRINT*(печать).
&H2B Клавиша*EXECUTE*(исполнить).
&H2C Клавиша*PRINT*SCREEN*(печать экрана).
&H2D Клавиша*INS*(вставить).
&H2E Клавиша*DEL*(удалить).
&H2F Клавиша*HELP*(справка).
&H30 Клавиша*0.
&H31 Клавиша*1.
&H32 Клавиша*2.
&H33 Клавиша*3
&H34 Клавиша*4.
&H35 Клавиша*5.
&H36 Клавиша*6.
&H37 Клавиша*7.
&H38 Клавиша*8.
&H39 Клавиша*9.
&H3A-&H40 Не определены.
&H41 Клавиша*A.
&H42 Клавиша*B.
&H43 Клавиша*C.
&H44 Клавиша*D.
&H45 Клавиша*E.
&H46 Клавиша*F.
&H47 Клавиша*G.
&H48 Клавиша*H.
&H49 Клавиша*I.
&H4A Клавиша*J.
&H4B Клавиша*K.
&H4C Клавиша*L.
&H4D Клавиша*M.
&H4E Клавиша*N.
&H4F Клавиша*O.
&H50 Клавиша*P.
&H51 Клавиша*Q.
&H52 Клавиша*R.
&H53 Клавиша*S.
&H54 Клавиша*T.
&H55 Клавиша*U.
&H56 Клавиша*V.
&H57 Клавиша*W.
&H58 Клавиша*X.
&H59 Клавиша*Y.
&H5A Клавиша*Z.
&H5B Левая клавиша*Windows*(Клавиатура Microsoft® Natural® ).
&H5C Правая клавиша*Windows*(Клавиатура Microsoft® Natural® ).
&H5D Клавиша приложения (Клавиатура Microsoft® Natural® ).
&H5E Зарезервирован.
&H5F Клавиша*Sleep*(сна) компьютера.
&H60 Клавиша*0*вспомогательной цифровой клавиатуры.
&H61 Клавиша*1*вспомогательной цифровой клавиатуры.
&H62 Клавиша*2*вспомогательной цифровой клавиатуры.
&H63 Клавиша*3*вспомогательной цифровой клавиатуры.
&H64 Клавиша*4*вспомогательной цифровой клавиатуры.
&H65 Клавиша*5*вспомогательной цифровой клавиатуры.
&H66 Клавиша*6*вспомогательной цифровой клавиатуры.
&H67 Клавиша*7*вспомогательной цифровой клавиатуры.
&H68 Клавиша*8*вспомогательной цифровой клавиатуры.
&H69 Клавиша*9*вспомогательной цифровой клавиатуры.
&H6A Клавиша умножения (*).
&H6B Клавиша сложения (+).
&H6C Клавиша разделения (\).
&H6D Клавиша вычитания (-).
&H6E Клавиша десятичная.
&H6F Клавиша деления (/).
&H70 Клавиша*F1.
&H71 Клавиша*F2.
&H72 Клавиша*F3.
&H73 Клавиша*F4.
&H74 Клавиша*F5.
&H75 Клавиша*F6.
&H76 Клавиша*F7.
&H77 Клавиша*F8.
&H78 Клавиша*F9.
&H79 Клавиша*F10.
&H7A Клавиша*F11.
&H7B Клавиша*F12.
&H7C Клавиша*F13.
&H7D Клавиша*F14.
&H7E Клавиша*F15.
&H7F Клавиша*F16.
&H80 Клавиша*F17.
&H81 Клавиша*F18.
&H82 Клавиша*F19.
&H83 Клавиша*F20.
&H84 Клавиша*F21.
&H85 Клавиша*F22.
&H86 Клавиша*F23.
&H87 Клавиша*F24.
&H88-&H8F Предназначения нет.
&H90 Клавиша*NUM*LOCK.
&H91 Клавиша*SCROLL*LOCK.
&H92-&H96 Определяет*OEM.
&H97-&H9F Предназначения нет.
&HA0 Левая клавиша*SHIFT.
&HA1 Правая клавиша*SHIFT.
&HA2 Левая клавиша*CONTROL.
&HA3 Правая клавиша*CONTROL.
&HA4 Левая клавиша*MENU
&HA5 Правая клавиша*MENU.
&HA6 Windows 2000/XP: клавиша*Browser*Back*(просмотр вперед).
&HA7 Windows 2000/XP: клавиша*Browser*Forward*(просмотр назад).
&HA8 Windows 2000/XP: клавиша*Browser*Refresh*(обновить экран просмотра).
&HA9 Windows 2000/XP: клавиша*Browser*Stop*(остановить просмотр).
&HAA Windows 2000/XP: клавиша*Browser*Search*(поиск в окне просмотра).
&HAB Windows 2000/XP: клавиша*Browser*Favorites*(предпочтитель ного просмотра).
&HAC Windows 2000/XP: клавиша*Browser*Start*и*Home*(эапуск брузера и на главную страницу).
&HAD Windows 2000/XP: клавиша*Volume*Mute*(временно выключить звук).
&HAE Windows 2000/XP: клавиша*Volume*Down*(понизить громкость звука).
&HAF Windows 2000/XP: клавиша*Volume*Up*(повысить громкость звука).
&HB0 Windows 2000/XP: Клавиша*Next*Track*(следующая дорожка).
&HB1 Windows 2000/XP: Клавиша*Previous*Track*(предыдущая дорожка).
&HB2 Windows 2000/XP: Клавиша*Stop*Media*(останов проигрывателя).
&HB3 Windows 2000/XP: Клавиша*Play/Pause*Media*(воспроизведение/пауза проигрывателя).
&HB4 Windows 2000/XP: Клавиша*Start*Mail*(запуск почтовой программы).
&HB5 Windows 2000/XP: Клавиша*Select*Media*(выбора медиа).
&HB6 Windows 2000/XP: Клавиша*Start*Application*1*(запуск приложения 1).
&HB7 Windows 2000/XP: Клавиша*Start*Application*2*(запуск приложения 2).
&HB8-&HB9 Зарезервированы.
&HBA Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша*';:'.
&HBB Windows 2000/XP: для любой страны/региона это клавиша '+'.
&HBC Windows 2000/XP: для любой страны/региона это клавиша*','.
&HBD Windows 2000/XP: для любой страны/региона это клавиша '-'.
&HBE Windows 2000/XP: для любой страны/региона это клавиша*'.'.
&HBF Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша*'/?'.
&HC0 Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша '`~'.
&HC1-&HD7 Зарезервированы.
&HD8-&HDA Предназначения нет.
&HDB Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша '[{'.
&HDC Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша '\|'.
&HDD Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша ']}'.
&HDE Используется для разных знаков; он может изменяться клавиатурой.
LOST Windows 2000/XP: для американской стандартной клавиатуры это клавиша
'одиночная*кавычка/двойная*кавычка'.
&HDF Используется для разных знаков; он может изменяться клавиатурой.
&HE0 Зарезервирован.
&HE1 Специальный для*OEM.
&HE2 Windows 2000/XP: или клавиша угловой скобки или обратный слэш(наклонная черта влево)
на *RT клавиатуре с 102 клавишами.
&HE3-&HE4 Специальные для*OEM.
&HE5 Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: клавиша*IME*PROCESS*(обработка*IME).*
&HE6 Специальные для*OEM.
&HE7 Windows 2000/XP: Используется* для перехода на символы**Unicode*, как будто бы они были
нажатиями клавиш. Клавиша**VK_PACKET*- младшее слово 32-разрядного значения*Virtual*Key, используемого для не клавиатурного метода ввода данных. Подробную информацию, см. в разделе Замечания в описании*KEYBDINPUT,*SendInput,*WM_KEYDO WN*и*WM_KEYUP.*
&HE8 Предназначения нет.
&HE9-&HF5 Специальные для*OEM.
&HF6 Клавиша*Attn.
&HF7 Клавиша*CrSel.
&HF8 Клавиша*ExSel.
&HF9 Клавиша очистки*EOF.
&HFA Клавиша воспроизведения.
&HFB Клавиша увеличения/уменьшения.
&HFC Зарезервировано для будущего использования.
&HFD Клавиша*PA1.
&HFE Клавиша очистки.*


Коды клавиш
хотя вместо кодов студия предлагает "Keys" чтоб экономитт экономить время... вместо кодов юзай "Keys.A", "Keys.X" и так далее.
8
1 / 1 / 0
Регистрация: 16.07.2017
Сообщений: 35
19.07.2017, 00:27
Цитата Сообщение от Yury Komar Посмотреть сообщение
Вставь мой код в форму, сверни окно и по-нажимай CTRL+A,C,V,X
и посмотри что происходит... На панели задач увидишь как меняется заголовок окна, когда окно НЕ АКТИВНО...
Надеюсь ответил на вопрос...
Абсолютно ничего не происходит
0
 Аватар для l34ddx
69 / 66 / 23
Регистрация: 23.07.2014
Сообщений: 121
19.07.2017, 14:51
Цитата Сообщение от Skramby Посмотреть сообщение
Абсолютно ничего не происходит
Неправда ! форма отлавливает нажатия.
У Вас наверно в настройках винды сгруппированы кнопки панели задач.
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
23.07.2017, 20:18
Skramby, а чего вы ждете? Фейерверка?
При нажатии запрограммированных клааиш, меняется заголовок формы... если хотите иного, измените код под свои нужды.
0
1 / 1 / 0
Регистрация: 19.07.2015
Сообщений: 42
10.01.2019, 19:33
Цитата Сообщение от Yury Komar Посмотреть сообщение
Вставь мой код в форму, сверни окно и по-нажимай CTRL+A,C,V,X
А одновременное нажатие клавиш как-то можно определить? (например, если у меня проект музыкальной клавиатуры, где требуется иногда одновременное нажатие клавиш)
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
11.01.2019, 03:29
Textron, а CTRL+C это ведь и есть одновременное нажатие клавиш... Или нет?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2019, 03:29
Помогаю со студенческими работами здесь

Как отловить нажатие Button
Привет подскажите пожалуйста как создать условие IF в котором отлавливается нажатие контрола Button?

Как отловить нажатие кнопки в приложении?
Подскажите, как отловить нажатие кнопки в ВБ.нет?

Как отловить нажатие стрелок в Control?
Создаю свой класс, наследую его от Control Добавляю обработчик для многих клавиш, в т.ч. и стрелки на нажатие кнопок Enter или +...

Отловить нажатие клавиши в текстовом поле
Извиняюсь, в названии темы ошибка. Вместо TextBox 1 должно быть TextBox 2 =) В общем, код: Private Sub...

Как отловить в своей программе нажатие CTRL + F
SoftIce, Я перевожу свою программу на vb10 и у меня возникли проблемы с переводом. Точнее с переменными. Подскажите пожалуйста как их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru