Private Sub GE_kill_fetch_error_Timer() '************************************************************************************ 'This procedure receives control from the GE_kill_fetch_error timer control every 'second 'The input parameters are: ' None 'Notes on this procedure: ' o This routine relies on a characteristic of GE that we have dicovered, ' namely that when the GE fetch error window is visible its handle is ' always the one that finds its way through FindWindow, not the original ' main GE window ' o Note that this routine just kills the first GE window it finds with ' the title "Google Earth" that is not the main GE window - there are some ' other GE windows aside from the GE fetch error window that meet this ' criteria which will be zapped by this routine if they show themselves ' first ' o This does not appear to be too problematic although it may appear a little ' skitzoid to a user - a small price to pay for automatically getting rid ' of the vast majority of GE fetch error windows ' o This is all rather slimey - some simple refinement of GE, e.g. putting ' a unique title on the GE fetch error window ("Google Earth Fetch Error"?) ' would take the haphazard element out of it - even better what about an ' option in GE to allow the user to permanently suppress fetch error ' windows - even better some form of event notification from GE when a ' fetch error occurs with a capability to programmatically respond '************************************************************************************ 'Get handle of window with title Google Earth hWindow& = FindWindow(vbNullString, "Google Earth") 'If it is not handle of main GE window... If hWindow& <> GE_main_window_handle Then 'Assume it is the GE fetch error window and kill it by posting a message 'to the window to force it to close - use PostMessage rather than SendMessage 'because SendMessage waits for a response (which may never come if something 'is stuffed) while PostMessage just sends a message and doesn't wait rc& = PostMessage(hWindow&, WM_CLOSE, 0&, 0&) 'Theoretically there will be only 1 GE fetch error raised per instance of 'GE so it should be OK to terminate this timer now GE_kill_fetch_error.Enabled = False End If End Sub