Outlook for the Blind Redux

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.

Posted in Uncategorized

5 thoughts on “Outlook for the Blind Redux

  1. 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

  2. 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?

  3. 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

  4. 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


Posting code? Use <pre> tags for VBA and <code> tags for inline.

Leave a Reply

Your email address will not be published.