Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
2 / 2 / 0
Регистрация: 09.09.2010
Сообщений: 13
1

Как отследить нажаты ли Shift, Ctrl, Alt?

10.10.2010, 12:50. Показов 3906. Ответов 7
Метки нет (Все метки)

Например, если я хочу узнать при обработке события Worksheet_Change, что было нажато при изменении ячейки Enter, Shift-Enter и т.д. Как это сделать?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2010, 12:50
Ответы с готовыми решениями:

Как отследить статус клавиши CTRL при нажатии на кнопку ToggleButton?
Нужно при нажатии ToggleButton поймать - нажата ли в этот момент клавиша контрол и в соответсвии с...

Index vs Match + 2 criteria + Ctrl-Shift-Enter
Здравствуйте! Собственно вопрос в теме. Нужно через ИНДЕКС + ПОИСКПОЗ подтянуть значения в столбец...

GLUT Отследить ctrl, alt, shift
Доброго времени суток! Подскажите, каким образом можно отследить нажатие и отпускание клавиш...

Как программно нажать Shift, Alt и Ctrl?
Как с помощью SendKeys.Send программно нажать Shift, Alt или Ctrl? В таблице на MSDN нет кодов этих...

7
Comanche
10.10.2010, 13:39 2
API-функция GetAsyncKeyState, по-моему.
2 / 2 / 0
Регистрация: 09.09.2010
Сообщений: 13
10.10.2010, 15:28  [ТС] 3
Почему-то у меня GetAsyncKeyState не работает (по крайней мере под XP).
Visual Basic
1
2
Declare Function GetAsyncKeyState Lib 'User32' (vKey As Integer) As Integer
st% = GetAsyncKeyState(16) 'Shift
0
2 / 2 / 0
Регистрация: 09.09.2010
Сообщений: 13
10.10.2010, 15:29  [ТС] 4
Всегда возвращает 0.
1
Comanche
10.10.2010, 16:17 5
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Declare Function GetAsyncKeyState Lib 'user32' (ByVal vKey As Long) As _
    Integer
'
' The state of the Ctrl key
Function CtrlKey() As Boolean
    CtrlKey = (GetAsyncKeyState(vbKeyControl) And &H8000)
End Function
'
' The state of either Shift keys
Function ShiftKey() As Boolean
    ShiftKey = (GetAsyncKeyState(vbKeyShift) And &H8000)
End Function
'
' The state of the Alt key
Function AltKey() As Boolean
    AltKey = (GetAsyncKeyState(vbKeyMenu) And &H8000)
End Function
2 / 2 / 0
Регистрация: 09.09.2010
Сообщений: 13
10.10.2010, 16:40  [ТС] 6
Ура!!! Заработало!

Все дело было в отсутствии ByVal.
0
2 / 2 / 0
Регистрация: 09.09.2010
Сообщений: 13
10.10.2010, 16:41  [ТС] 7
Огромное спасибо!
0
81 / 4 / 2
Регистрация: 29.04.2015
Сообщений: 117
06.02.2018, 10:02 8
Comanche, огромное спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2018, 10:02

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Нужен подсказщик в WinLock! Нужно отключить Alt+Tab, Ctrl+Alt+Del, Ctel+Shift+Esc !!!!!
Здравствуйте! Мне нужна помощь... Нужно отключить вот эти комбинации клавиш в WinLock: Alt+Tab, ...

Как отследить нажатие Ctrl+Shift?
Ребята подскажите пожалуйста как отследить нажатие клавиш Ctrl+Shift ? Хочу для текстового режима в...

Как обработать нажатия Ctrl,Alt,win,shift??
Пробывал через регистрацию глобальных горячих клавиш,но чет не проперло:( lmouse_button :=...

Как узнать, левый или правый Shift (Ctrl, Alt) нажат?
Как же это в конце концов узнать??? Те API, которые мне подсказывали, различают левый и правый...


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

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

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