#define key_lshift 0xa0 >>>#define key_rshift 0xa1 >>>#define key_lctrl 0xa2 >>>#define key_rctrl 0xa3 >>>#define key_lalt 0xa4 >>>#define key_ralt 0xa5 >>> >>>DECLARE INTEGER GetAsyncKeyState IN WIN32API INTEGER nVKey >>> >>>LOCAL llLShiftDown, llRShiftDown, llLCtrlDown, llRCtrlDown, llLAltDown, llRAltDown >>>llLShiftDown = isKeyDown(key_lshift) >>>llRShiftDown = isKeyDown(key_rshift) >>>llLCtrlDown = isKeyDown(key_lctrl) >>>llRCtrlDown = isKeyDown(key_rctrl) >>>llLAltDown = isKeyDown(key_lalt) >>>llRAltDown = isKeyDown(key_ralt) >>> >>>* The same works for reading mouse buttons >>>#define left_button 0x1 >>>#define right_button 0x2 >>>#define middle_button 0x4 >>>llLeftButtonDown = isKeyDown(left_button) >>>llRightButtonDown = isKeyDown(right_button) >>>llMiddleButtonDown = isKeyDown(middle_button) >>> >>> >>>FUNCTION isKeyDown >>>LPARAMETERS tnVKey >>> RETURN (BITAND(GetAsyncKeyState(tnVKey), 0x8000) != 0)>>>
#define key_lshift 0xa0 >#define key_rshift 0xa1 >#define key_lctrl 0xa2 >#define key_rctrl 0xa3 >#define key_lalt 0xa4 >#define key_ralt 0xa5 >#define left_button 0x1 >#define right_button 0x2 >#define middle_button 0x4 > >LOCAL llLShiftDown, llRShiftDown, llLCtrlDown, llRCtrlDown, llLAltDown, llRAltDown >LOCAL llLeftButtonDown, llRightButtonDown, llMiddleButtonDown > >DECLARE INTEGER GetAsyncKeyState IN WIN32API INTEGER nVKey >DO WHILE INKEY() != 27 > llLShiftDown = (BITAND(GetAsyncKeyState(key_lshift), 0x8000) != 0) > llRShiftDown = (BITAND(GetAsyncKeyState(key_rshift), 0x8000) != 0) > llLCtrlDown = (BITAND(GetAsyncKeyState(key_lctrl), 0x8000) != 0) > llRCtrlDown = (BITAND(GetAsyncKeyState(key_rctrl), 0x8000) != 0) > llLAltDown = (BITAND(GetAsyncKeyState(key_lalt), 0x8000) != 0) > llRAltDown = (BITAND(GetAsyncKeyState(key_ralt), 0x8000) != 0) > IF llLShiftDown > CLEAR > ? "Left shift" > ENDIF > IF llRShiftDown > CLEAR > ? "Right shift" > ENDIF > IF llLCtrlDown > CLEAR > ? "Left control" > ENDIF > IF llRCtrlDown > CLEAR > ? "Right control" > ENDIF > IF llLAltDown > CLEAR > ? "Left alt" > ENDIF > IF llRAltDown > CLEAR > ? "Right alt" > ENDIF > > * The same works for reading mouse buttons > llLeftButtonDown = (BITAND(GetAsyncKeyState(left_button), 0x8000) != 0) > llRightButtonDown = (BITAND(GetAsyncKeyState(right_button), 0x8000) != 0) > llMiddleButtonDown = (BITAND(GetAsyncKeyState(middle_button), 0x8000) != 0) > IF llLeftButtonDown > CLEAR > ? "Left mouse button" > ENDIF > IF llRightButtonDown > CLEAR > ? "Right mouse button" > ENDIF > IF llMiddleButtonDown > CLEAR > ? "Middle mouse button" > ENDIF >ENDDOThanks, I will check why it did not work previously, but this does work.