Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 08.05.2013, 19:36   #1
 Старший сержант
Аватар для OrBiT_DaRk
 
OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(
Регистрация: 31.05.2011
Сообщений: 201
Популярность: 24012
Сказал(а) спасибо: 1,360
Поблагодарили 478 раз(а) в 251 сообщениях
Отправить сообщение для OrBiT_DaRk с помощью Skype™
 
По умолчанию [.NET] Перехват нажатия клавиш.


[.NET] Перехват нажатия клавиш.
Здравствуйте, с этой статье я покажу как средствами VB.NET можно перехватить нажатие клавиш клавиатуры.

Video


Я создал новый проект, на который добавил RichTextBox, в котором будет высвечивать "лог" нажатых клавиш.
[Ссылки могут видеть только зарегистрированные пользователи. ]

Также добавим таймер на форму.
[Ссылки могут видеть только зарегистрированные пользователи. ]

Перейдем к коду.
Вставим эти строку в начало кода.
Код:
  Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Keys) As Integer
    Dim keysa As New List(Of Keys)
[Ссылки могут видеть только зарегистрированные пользователи. ]

Теперь создадим саму функцию отлова нажатия кнопки на вашей клавиатуре.

Код:
 Private Function keyboard(ByVal key As Keys)
        Const KEY_DOWN As Integer = &H8000 

        If GetKeyState(key) And KEY_DOWN Then
            RichTextBox1.AppendText(key.ToString & " " & TimeOfDay & vbCrLf) ' Если клавишу нажмут, в RichTextBox1 добавит строку с названием кнопки и времинем нажатия.
        End If
    End Function
Далее переходим к коду таймера:
Код:
  For I = 0 To keysa.Count - 1
            keyboard(keysa.Item(I)) 'Проверяем нажатие кнопки в цикле.
        Next
Теперь перейдем к событию загрузки формы.
Код:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        keysa.Add(Keys.LShiftKey)
        keysa.Add(Keys.RShiftKey)
        keysa.Add(Keys.ControlKey)
        keysa.Add(Keys.LWin)
        keysa.Add(Keys.Space)
        keysa.Add(Keys.Menu)
        '....
        'Так можно добавить интересующие вас кнопки.
        Timer1.Interval = 200
        Timer1.Start() 'запускаем таймер

    End Sub
Собственно все.
Все материалы собирал с иностранных сайтов. Половину делал сам.
Исходник:
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось OrBiT_DaRk; 08.05.2013 в 19:56.
  Ответить с цитированием
Старый 17.05.2013, 00:48   #2
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: [.NET] Перехват нажатия клавиш.

Хм, а как же глобальный хоткей?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] эмулятор нажатия клавиш lightDiN Общение и обсуждение 3 09.02.2013 17:35
отправка нажатия клавиш в свёрнутое окно Meg(0) Общение разработчиков 18 08.02.2013 19:09
Имитация нажатия Jok3r666 Общение разработчиков 9 01.02.2012 22:45
[Помогите!] Перехват мыши и симуляция нажатия клавиши Dimedrol1536 Вопросы и ответы, обсуждения 2 11.07.2011 11:21
Авто нажатия клавиш PHP Генер Вопросы и ответы, обсуждения 5 01.06.2011 01:55

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 11:51.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net