My brilliant piece of altruistic code posted in Get Outlooks Currently Selected Time isn’t all that it’s cracked up to be. Had it been for anyone except a blind guy, it would have been just a poor hack job. But for him, it’s practically unusable. You would think the visually impaired would have no need for code such as Application.ScreenUpdating = False
. You would think screen flicker would be the least of their concerns. However, the screen reading programs tries to read the screen when it’s updated, so it’s a big mess.
I haven’t been able to find a way, in Outlook, to stop the screen from updating. If you know of a way, please drop me a line.
Sue Mosher seems to have all the Outlook answers. Unfortunately the answer
is that you can’t do it.
http://www.outlookcode.com/threads.aspx?forumid=2&messageid=9292
Regards
Andrew
excelthoughts.com
Dick,
The closest I can get is as follows:
It still shows the appointment window, but appears not to draw the contents of the window?
Private Declare Function LockWindowUpdate Lib “user32? (ByVal hwndLock As Long) As Long
Private Declare Function GetDesktopWindow Lib “user32? () As Long
Sub GetCurrentDay()
Dim dtSelected As Date
Dim i As Long
If Application.ActiveExplorer.CurrentFolder.DefaultItemType = olAppointmentItem Then
LockWindowUpdate (GetDesktopWindow)
Application.ActiveExplorer.CommandBars.FindControl(, 1106).Execute
For i = 1 To 10000: DoEvents: Next i
dtSelected = Application.ActiveInspector.CurrentItem.Start
Application.ActiveInspector.Close olDiscard
LockWindowUpdate (0)
Debug.Print Format(dtSelected, “mm/dd/yyyy hh:mm”)
End If
End Sub
I don’t know anything about the programmability of screen reader programs but would an alternative approach be to try and turn that on / off in preference to trying to turn Outlook screen refresh on / off?
Dick,
MS Project doesn’t support this property either. If I really don’t want it to flicker I set visible = false until I’m done or switch the active project to one which is blank.
-Jack
Wouldn’t it be nice if the reader could be signalled to ignore updates for a period of time?
eg.
ScreenReader.ProcessScreenUpdates = False
dtm = GetSelectedOutlookDate()
ScreenReader.ProcessScreenUpdates = True
Surely this automation problem would affect more apps than just Outlook?
Rob