作为一名开发人员,我很沮丧,因为我的老板和同事总是给我贴上“我总是开会迟到”的标签。但就像所有迟到的人一样,我也有自己的借口。
当您在 Visual Studio 上大量打字时,很容易错过 Outlook 通知。
我在网上寻找解决方案。希望找到一种可以让整个电脑停止运行并在我的屏幕上显示一个大红框警告提醒的方法,让我知道前面有一个会议约会。但遗憾的是,很多解决方案都是 Outlook 的付费插件,仍然不能满足我的要求。
该线程中的所有解决方案也被证明是困难的并且效果不佳。 如何让 Outlook 日历提醒在 Windows 7 中保持最顶部
答案1
我最终找到了一个使用 Outlook VBA 和一个简单的 EXE 的简单解决方案。
以下是如何不再错过 Outlook 会议约会的方法。
为什么只为此目的使用独立的 exe 应用程序?好吧,我在 VBA 中嵌入了大红框,但该解决方案充满了问题(我相信这是因为我必须使用 hwnd 和其他不寻常的系统属性来将大红框保持在顶部)。因此,为了让事情更简单,为什么不使用一个只做一件事的基本 EXE。您可以使用微软的免费工具(Visual Studio Community 2015 是免费的)。
这是 EXE 代码。具有一个窗体的简单 Windows 窗体应用程序。编译此代码。
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
这就是我在 Outlook VBA 中所需要的全部内容。将其添加到 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