Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
SirFunnyKnight
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 8
1

Создать процедуру, отслеживающую нажатие определенных клавиш клавиатуры

03.02.2014, 01:29. Просмотров 981. Ответов 1
Метки нет (Все метки)

Вопрос вот в чем: мне в программе нужно создать процедуру, отслеживающую нажатие определенных клавиш клавиатуры и выполняющую определенное действие, исходя из результата.

К примеру:
у меня на форме есть 9 label‘ов в виде матрицы 3х3. 8 из них закрашены синим, а 1 - красным.
Допустим, что при нажатиях клавиш w,a,s,d красный квадрат перемещался, т.е подобие хода внутри матрицы.

Если не трудно - выложите код примера...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 01:29
Ответы с готовыми решениями:

Как запретить нажатие определенных сочетаний клавиш на Windows 8?
1. Как запретить нажатие определенных сочетаний клавиш на Windows 8? 2. Как сделать форму поверх...

Как сделать глобальное нажатие клавиш?
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'Const...

Как послать нажатие сочетания клавиш?
Привет всем! Кто знает как послать нажатие сочетания клавиш (например, Alt+Down). Пробовал...

Как глобально отлавливать нажатие клавиш
Есть программка на VB, отслеживающая нажатие клавиш на клавиатуре. Но работает только пока на ней...

Послать приложению нажатие клавиши(сочетания клавиш)
Как периодически посылать другому запущенному приложению одну(комбинацию) клавишу? Причём, чтобы...

1
The trick
Модератор
7365 / 2583 / 755
Регистрация: 22.02.2013
Сообщений: 3,799
Записей в блоге: 76
03.02.2014, 02:40 2
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Option Explicit
Dim Act As Long, Arr() As Long
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyW: Swap Act, Act - 3
    Case vbKeyS: Swap Act, Act + 3
    Case vbKeyA: Swap Act, Act - 1
    Case vbKeyD: Swap Act, Act + 1
    End Select
End Sub
Private Sub Swap(i1 As Long, i2 As Long)
    Dim lbl1 As Label, lbl2 As Label, l As Long, t As Long
    If i2 < 0 Or i2 > 8 Or ((i1 + i2) Mod 3 = 2 And Abs(i1 - i2) = 1) Then Exit Sub
    Arr(i1) = Arr(i1) Xor Arr(i2): Arr(i2) = Arr(i2) Xor Arr(i1): Arr(i1) = Arr(i1) Xor Arr(i2)
    Set lbl1 = Me.Controls("lblItem" & Arr(i2)): Set lbl2 = Me.Controls("lblItem" & Arr(i1))
    l = lbl1.Left: t = lbl1.Top: lbl1.Move lbl2.Left, lbl2.Top: lbl2.Move l, t
    Act = i2
End Sub
Private Sub Form_Load()
    Dim lbl As Label, i As Long
    ReDim Arr(8)
    For i = 0 To 8
        Set lbl = Me.Controls.Add("VB.Label", "lblItem" & CStr(i))
        lbl.Move Me.ScaleWidth / 3 * (i Mod 3), Me.ScaleHeight / 3 * (i \ 3), Me.ScaleWidth / 3, Me.ScaleHeight / 3
        lbl.Visible = True: lbl.BackColor = vbBlue: lbl.Caption = i: Arr(i) = i
    Next
    lbl.BackColor = vbRed: Act = 8
End Sub
1
Миниатюры
Создать процедуру, отслеживающую нажатие определенных клавиш клавиатуры  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 02:40

Нажатие-отжатие кнопок по нажатию-отжатию клавиш на клавиатуре
Всем доброго времени суток! Проблема такая: 1) В VB 6.0 нужно описать кнопку на нажатие и отжатие...

Как програмно сэмулировать нажатие клавиш ctrl+shift+'k ?
Как програмно сэмулировать нажатие клавиш ctrl+shift+'k' да ещё чтобы это нажатие получил...

Эмулировать нажатие клавиш Alt+Tab каждые пять секунд
Буду краток,нужна программа которая через определенный интервал времени(например 5 сек.)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru