>>#define VK_SHIFT 0x10 >>#define VK_CONTROL 0x11 >>#define VK_MENU 0x12 >>#define PRESSED 0x07 >> >>DECLARE INTEGER GetKeyboardState IN WIN32API STRING @ >> >>DO WHILE .t. >> m1 = REPLICATE(CHR(0),255) >> wait WINDOW "" TIMEOUT 0.5 >> GetKeyboardState(@m1) >> ? "Shift",ASC(SUBSTR(m1,VK_SHIFT+1,1)), BITTEST(ASC(SUBSTR(m1,VK_SHIFT+1,1)),PRESSED) >> ? "Control",ASC(SUBSTR(m1,VK_CONTROL+1,1)), BITTEST(ASC(SUBSTR(m1,VK_CONTROL+1,1)),PRESSED) >> ? "Alt",ASC(SUBSTR(m1,VK_MENU+1,1)), BITTEST(ASC(SUBSTR(m1,VK_MENU+1,1)),PRESSED) >> IF LASTKEY() == 27 >> EXIT >> ENDIF >>ENDDO >> >> >>>
>PUBLIC oform1 > >oform1=NEWOBJECT("form1") >oform1.Show >RETURN > >DEFINE CLASS form1 AS form > > PROCEDURE Click > _VFP.AutoYield=.T. > FOR k=1 TO 5 > ? "down",SECONDS() > KEYBOARD '{ENTER}' PLAIN > FOR j=1 TO 20000000 > NEXT > NEXT > ENDPROC > > > PROCEDURE KeyPress > LPARAMETERS nKeyCode, nShiftAltCtrl > ? SECONDS() > ENDPROC > > >ENDDEFINE >