-3

As I developer, I was frustrated that my boss and co worker put a label on my head that I was always late to a meeting. But like every late goers I have my own excuse.

When you are heavily typing on visual studio. outlook notification can easily get missed.

I look and look in the internet for a solution. Something that will halt my whole computer with a big red box warning alert on my face to let me know that there is a meeting appointment ahead. And with sadness, a lot of the solution is a paid plugin add on to outlook and still not satisfy my requirement.

all solution in this thread also proven to be difficult and not working very well. How to make Outlook Calendar reminders stay on top in Windows 7

1 Answers1

0

I finally find a simple solution using Outlook VBA and a simple EXE.

Here is how to never missed outlook meeting appointment again.

Why a stand alone exe application just for this purpose? Well I had the the big red box embeded in the VBA, but that solution was full of problem (I believe it is because I have to use hwnd and other unusual system property to keep the big red box on top) . So to make things simpler why not a basic EXE that do one thing. You can use free tools from microsoft (Visual studio Community 2015 is free).

This is the EXE code. simple windows form application with one form. Compile this code.

Imports System.Timers
Public Class Form1
    Dim tTimer As New Timer
    Public Sub New()
        InitializeComponent()
        Me.StartPosition = Windows.Forms.FormStartPosition.CenterScreen
        Me.TopMost = True
        Me.TopLevel = True
    End Sub
    Private Sub Form1_DoubleClick(sender As Object, e As EventArgs) Handles Me.DoubleClick
        Application.Exit()
    End Sub 
    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        flashingQuick()
    End Sub
    Sub flashingQuick()
        tTimer.Start()
        AddHandler tTimer.Elapsed, New ElapsedEventHandler(AddressOf TimerTick)
    End Sub
    Sub TimerTick(ByVal source As [Object], ByVal e As ElapsedEventArgs)
        Dim theTimer As System.Timers.Timer = DirectCast(source, System.Timers.Timer)
        theTimer.Interval = 500
        theTimer.Enabled = True
        If Me.BackColor = System.Drawing.SystemColors.Control Then
            Me.BackColor = Color.Red
        Else
            Me.BackColor = System.Drawing.SystemColors.Control
        End If
    End Sub
End Class

And this is all I need in the outlook VBA. Add it in ThisOutLookSession.

Private Sub Application_Reminder(ByVal Item As Object)
    On Error Resume Next
    If Item.MessageClass <> "IPM.Appointment" Then
      Exit Sub
    End If
    Dim sAPPData As String
    Dim sFileName As String
    sAPPData = Environ("AppData")
    sFileName = "\Microsoft\Windows\Start Menu\Programs\BigRedBox\BigRedBox.exe"
    If Dir(sAPPData & sFileName) <> "" Then
        Call Shell(sAPPData & sFileName)
    End If
End Sub