|
导读用于function中const SCROLLLOCK = 1; NUMLOCK = 2; CAPSLOCK = 4;var Status: Byte; PntK: ... 用于function中const SCROLLLOCK = 1; NUMLOCK = 2; CAPSLOCK = 4; var Status: Byte; PntK: ^Byte; begin PntK := Ptr($40, $97); {directly point in memory} Status := Byte(PntK^); {read the status} if (NUMLOCK and Status) = NUMLOCK then {if NUM LOCK is on} Status := Status and (255 - NUMLOCK) {turn it off} else Status := Status or 2; {turn it on} Pntk^ := Status; {poke in memory (don't works)} end; A: I use this procedures to turn on the caps lock if it isn't already on when the user enters my DBloockup combo. This gets rid of the nasty problem of case-sensitive indexes. procedure TMainForm.StudentLookupEnter(Sender: TObject); Var Level : Integer; KeyState : TKeyBoardState; begin {check if caps-lock is on - if not turn it on} Level := GetKeyState(VK_CAPITAL); GetKeyboardState(KeyState); CapsLockStatus := KeyState; If Level = 0 then begin KeyState[VK_CAPITAL] := 1; setKeyboardState(KeyState); end; end; |
温馨提示:喜欢本站的话,请收藏一下本站!