local obj obj = createobject('SendKeysIfForegroundwindowChanges', chr(0x0d) ) this.OleMessage.Send( FALSE ) release obj
#ifnDef TRUE #define TRUE .T. #define FALSE .F. #endif Define Class SendKeysIfForegroundwindowChanges as Timer Interval = 100 Enabled = TRUE ForegroundWindow_Old = 0 KeyStrokes = '' AllDownFirst = FALSE *------------------------------------------------------------------------------- hidden function Init(KeyStrokes, AllDownFirst ) declare integer GetForegroundWindow in Win32API this.ForegroundWindow_Old = GetForegroundWindow() declare keybd_event in win32api integer, integer, integer, integer this.KeyStrokes = KeyStrokes this.AllDownFirst = AllDownFirst endfunc *------------------------------------------------------------------------------- hidden function timer this.Enabled = FALSE do case case this.ForegroundWindow_Old <> GetForegroundWindow() local i, c do case case !this.AllDownFirst for i = 1 to len(this.KeyStrokes) c = asc(substr(this.KeyStrokes, i, 1)) =keybd_event(c, 0, 0, 0) && key down =keybd_event(c, 0, 2, 0) && key up endfor otherwise for i = 1 to len(this.KeyStrokes) c = asc(substr(this.KeyStrokes, i, 1)) =keybd_event(c, 0, 0, 0) && key down endfor for i = 1 to len(this.KeyStrokes) c = asc(substr(this.KeyStrokes, i, 1)) =keybd_event(c, 0, 2, 0) && key up endfor endcase otherwise this.Enabled = TRUE endcase endfunc *------------------------------------------------------------------------------- enddefine