1

我想确保 Outlook 2010 中的提醒在触发时确实弹出。

我正在研究一种比 SE 问题如何使 Outlook 日历提醒在 Windows 7 中保持领先中讨论的更简洁的实现

调用该方法时我得到了一些挑剔的结果Activate,它应该通过将检查器窗口带到前台并设置键盘焦点来激活检查器窗口。

我正在呼吁Activate提醒检查器项目应该是什么。这不是调用的问题,如果没有打开 Outlook 资源管理器或检查器Application.ActiveWindow,它不会返回任何内容,因为我正在处理空值并在找不到任何内容时显示消息框。

'ensures all reminder notices receive focus
Private Sub Application_Reminder(ByVal Item As Object)
    If TypeOf Item Is AppointmentItem Then
        If Not (Application.ActiveWindow Is Nothing) Then
            Dim myOutlook As Object
            Set myOutlook = GetObject(, "Outlook.Application")
            If myOutlook.ActiveWindow.WindowState = olMinimized Then
                'This works fine
                Application.ActiveExplorer.Activate
            Else
                'This call won't set window ontop
                Application.ActiveExplorer.Activate
            End If
        End If
    End If
End Sub

当代码调用Activate时,如果 Outlook 被最小化,激活的窗口将被拉到前面并获得焦点,但如果它在后台打开则不会。

除了调用 user32 来设置警报窗口的 z-index 之外,我真的别无选择吗?

4

0 回答 0