Code: Alles auswählen
#VK_NUMLOCK
#VK_CAPITAL
#VK_SCROLL
Enumeration
#window
#keynumlock
#keycapslock
#keyscrolllock
EndEnumeration
Procedure MyGetKey(mykey)
ret=GetKeyState_(mykey)
ProcedureReturn ret
EndProcedure
Procedure MySetKey(mykey,mystate)
If MyGetKey(mykey)<>mystate
keybd_event_(mykey,0,0,0)
keybd_event_(mykey,0,#KEYEVENTF_KEYUP,0)
EndIf
EndProcedure
OpenWindow(#window,0,0,220,100,#PB_Window_ScreenCentered|#PB_Window_SystemMenu ,"Status Keys")
CreateGadgetList(WindowID(#window))
ButtonGadget(#keynumlock,10,10,60,60,"NUM LOCK",#PB_Button_MultiLine|#PB_Button_Toggle)
ButtonGadget(#keycapslock,80,10,60,60,"CAPS LOCK",#PB_Button_MultiLine|#PB_Button_Toggle)
ButtonGadget(#keyscrolllock,150,10,60,60,"SCROLL LOCK",#PB_Button_MultiLine|#PB_Button_Toggle)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_EventGadget
GadgetID = EventGadgetID()
If GadgetID = #keynumlock
MySetKey(#VK_NUMLOCK,GetGadgetState(#keynumlock))
EndIf
If GadgetID = #keycapslock
MySetKey(#VK_CAPITAL,GetGadgetState(#keycapslock))
EndIf
If GadgetID = #keyscrolllock
MySetKey(#VK_SCROLL,GetGadgetState(#keyscrolllock))
EndIf
Else
ret=MyGetKey(#VK_NUMLOCK)
If ret<>GetGadgetState(#keynumlock)
SetGadgetState(#keynumlock,ret)
EndIf
ret=MyGetKey(#VK_CAPITAL)
If ret<>GetGadgetState(#keycapslock)
SetGadgetState(#keycapslock,ret)
EndIf
ret=MyGetKey(#VK_SCROLL)
If ret<>GetGadgetState(#keyscrolllock)
SetGadgetState(#keyscrolllock,ret)
EndIf
EndIf
Until EventID = #PB_EventCloseWindow