/** * initializes timer and starts it, triggering event sequence **/ public WindowMonitor(tableUpdater tabUp, textUpdater textUp) { updateTable += new tableUpdater(tabUp); updateText += new textUpdater(textUp); //possible change to set global system hook for creation? //result so far: ALL window creations (even non-top level) raise event so doing so might actually //have inverse results and cause program to crash pollingCall(); pollTimer = new Timer(1000); //set polling rate to .5 Hz (every 2 seconds) pollTimer.Enabled = true; pollTimer.Elapsed += new ElapsedEventHandler(pollProcessList); //add invoked (to-be) method to event handler pollTimer.Start(); //start timer opencloseDele = new WinEventDelegate(OpenCloseEventProc); m_openclosehook = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, IntPtr.Zero, opencloseDele, 0, 0, WINEVENT_OUTOFCONTEXT); titlechangeDele = new WinEventDelegate(TitleChangeEventProc); titleChangeHook = SetWinEventHook(EVENT_OBJECT_NAMECHANGE, EVENT_OBJECT_NAMECHANGE, IntPtr.Zero, titlechangeDele, 0, 0, WINEVENT_OUTOFCONTEXT); currentApp = GetForegroundWindow(); }
private void Start() { TextUpdater = GetComponent <textUpdater>(); }