Как отловить нажатие клавиши Сaps Lock?

Раздел посвящен программированию с использованием Power Basic.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Как отловить нажатие клавиши Сaps Lock?

Сообщение jangle » 17.12.2006 (Вс) 19:42

Подскажите как отоловить в программе нажатие этой клавиши?

volo
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 10.12.2004 (Пт) 11:18
Откуда: Soviet Union

Re: Как отловить нажатие клавиши Сaps Lock?

Сообщение volo » 18.12.2006 (Пн) 10:44

jangle писал(а):Подскажите как отоловить в программе нажатие этой клавиши?



Что-то в этом роде (по крайней мере Shift и Ctrl работают нормально):


Код: Выделить всё
'FUNCTION WindowProc (BYVAL hWind  AS LONG, BYVAL uMsg  AS LONG,_
'BYVAL wParam AS LONG, BYVAL lParam AS LONG) AS LONG


'             CASE %WM_KEYDOWN
'                     IF wParam = %VK_SHIFT THEN
'                        ...
'                 ELSEIF wParam = %VK_CONTROL THEN
'                        ...
'                 ELSEIF wParam=%VK_LEFT THEN



Function TextProc(ByVal hWnd As Dword, ByVal wMsg As Dword, ByVal wParam As Long, ByVal lParam As Long) As Long
  Select Case Long wMsg
     Case %WM_GETDLGCODE    'to avoid autosel on focus
        Function = %DLGC_WANTCHARS Or %DLGC_WANTARROWS
        Exit Function

     Case %WM_KEYDOWN
        Select Case Long wParam  'to avoid shift + arrow keys)
           Case %VK_PRIOR To %VK_SELECT
              If (GetKeyState(%VK_SHIFT) And &H8000) Then Exit Function
        End Select

     Case %WM_LBUTTONDBLCLK, %WM_CONTEXTMENU, %WM_PASTE, %WM_UNDO 'to avoid double-click sel
        Exit Function

     Case %WM_MOUSEMOVE     'to avoid mouse sel
        If (wParam And %MK_LBUTTON) Then Exit Function

  End Select
  Function = CallWindowProc(OldTextProc, hWnd, wMsg, wParam, lParam)
End Function


jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 19.12.2006 (Вт) 14:36

Спасибо! GetKeyState(%VK_CAPITAL) - отлавливает капс :)


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList