Как настроить напоминания Outlook Calendar на первое место в Windows 7

Я только начинаю использовать Windows 7, и я хочу знать, как заставить мои напоминания Outlook всплывать и проявлять себя заметно. Они открываются незаметно, как просто другое окно в стеке Outlook на панели задач. В результате я продолжаю игнорировать их, потому что они появляются за всем остальным.

Как сделать их менее простыми?

(Понятно, что обычно не требуется, чтобы на переднем плане находились неприятные приложения, но есть несколько мест, где такое поведение желательно, а напоминания календаря Outlook являются одним из них.)

  • Как я могу поделиться своим календарем Outlook 2007 с Outlook 2003
  • Outlook 2013 сбрасывает напоминание о встрече до 0 минут после принятия приглашения
  • Запретить автоматическое удаление Outlook сообщений электронной почты
  • Как открыть несколько окон при запуске Outlook 2010?
  • Outlook 2007 - Самый простой и самый недорогой способ поделиться календарем между 5-10 людьми?
  • 10 Solutions collect form web for “Как настроить напоминания Outlook Calendar на первое место в Windows 7”

    У меня была та же проблема с Outlook 2010. Используйте приведенные ниже шаги, это работает как шарм. Не забудьте включить все макросы: Центр доверия> Параметры макроса.

    • Создайте цифровой сертификат позже: нажмите «Пуск» и введите «сертификат», выберите «Цифровой сертификат для проектов VBA»,
    • Введите имя для своего сертификата. Нажмите «ОК». Откройте Outlook и нажмите Alt + F11, чтобы запустить редактор VBA.
    • В дереве слева разверните «Объекты Microsoft Office Outlook» и дважды щелкните «ThisOutlookSession»,
    • Вставить в этот код:

      Private Declare PtrSafe Function FindWindowA Lib "user32" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE Private Const HWND_TOPMOST = -1 Private Sub Application_Reminder(ByVal Item As Object) Dim ReminderWindowHWnd As Variant On Error Resume Next ReminderWindowHWnd = FindWindowA(vbNullString, "1 Reminder") SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS End Sub 
    • Подпишите макрос, чтобы он запускался: Инструменты> Цифровая подпись … и выберите сертификат, который вы создали ранее

    • Закрыть окно VBA
    • Включить все макросы в «Файл»> «Параметры»> «Центр доверия»> «Настройки центра клиентов»> «Параметры макроса»

    Лучший ответ, который я нашел, здесь: Как получить напоминания о назначении Outlook, чтобы снова появиться перед другими окнами, используя некоторые простые VBA.

    Это влечет за собой добавление нескольких строк простого кода VBA в «ThisOutlookSession». Теперь он всплывает окно каждый раз. Намного лучше.

    • Создание цифрового сертификата для последующего
    • Нажмите «Пуск» и введите «сертификат», выберите «Цифровой сертификат для проектов VBA»
    • Введите имя для своего сертификата
    • Готово
    • Откройте Outlook и нажмите Alt + F11, чтобы запустить редактор VBA.
    • В дереве слева разверните «Объекты Microsoft Office Outlook» и дважды щелкните «ThisOutlookSession»,
    • Вставьте этот код, изменив текст в кавычках в соответствии с вашими предпочтениями. Оставьте кавычки.

       Private Sub Application_Reminder(ByVal Item As Object) If TypeOf Item Is AppointmentItem Then MsgBox "Message text", vbSystemModal, "Message title" End If End Sub 
    • Подпишите макрос, чтобы он запускался, перейдя в Инструменты> Цифровая подпись … и выбрав сертификат, который вы создали ранее

    • Закрыть окно VBA

    AutoHotKey также может быть использован для решения этой проблемы. Этот скрипт поставит окно напоминания сверху без кражи фокуса (проверено с помощью Win10 / Outlook 2013)

     TrayTip Script, Looking for Reminder window to put on top, , 16 SetTitleMatchMode 2 ; windows contains loop { WinWait, Reminder(s), WinSet, AlwaysOnTop, on, Reminder(s) WinRestore, Reminder(s) TrayTip Outlook Reminder, You have an outlook reminder open, , 16 WinWaitClose, Reminder(s), ,30 } 

    Сценарий AHK – скомпилированный EXE

    Выхода нет. Наша компания попыталась перевести ее в Microsoft напрямую. Одна вещь, которую люди здесь приписывают, это более неприятный звук, чтобы помочь заметить его. Но Microsoft рассказала нам, что это по дизайну.

    То же, что и выше, чем у Gullu's anwer, но с изменением в зависимости от названия окна:

     Private Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE Private Const HWND_TOPMOST = -1 '// TO ACCOUNT FOR WINDOW TITLE CHANGING WITH NOTIFICATION COUNT: Private Sub Application_Reminder(ByVal Item As Object) Dim ReminderWindowHWnd As Variant 'On Error Resume Next On Error GoTo err 'Loop 25 times as FindWindowA needs exact title which varies according to number of reminder items... Dim iReminderCount As Integer For iReminderCount = 1 To 25 'Try two syntaxes... ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Reminder"): SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Reminder(s)"): SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS Next Exit Sub err: Debug.Print err.Number & " - " & err.Description & " (iReminderCount = " & iReminderCount & ")" Resume Next End Sub 

    Я использовал Filebox eXtender, и когда появляется первое напоминание, я открываю его и нажимаю новый значок «pin» в правом верхнем углу панели надписей. Затем, когда появляется следующее напоминание, оно выходит на передний план …

    Меня это тоже раздражало. После некоторого интенсивного поиска я нашел частичный ответ: http://www.pcreview.co.uk/forums/hidden-outlook-reminders-t3972914.html

    Если вы измените настройку «Кнопки панели задач» в разделе «Панель задач и Свойства меню« Пуск »), чтобы« Никогда не объединяться », тогда группировка отделяется, и напоминание появляется перед всем, что вы открыли.

    Я попытался проверить его и обнаружил, что это противоречиво; Один раз он оставался скрытым за тем, над чем я работал, и в другой раз он выскочил вперед. В обоих случаях на панели задач был значок, который отличался от самого Outlook, поэтому, по крайней мере, был шанс, что я это заметлю.

    Я нашел добавление под названием ShowReminders ( http://www.sagelamp.com/pages/showreminders.aspx ), которое выводит окно напоминаний наверху. Это даже работает, когда вы минимизируете окно напоминания.

    Наконец, я нашел простое решение с использованием Outlook VBA и простого EXE.

    Вот как никогда не пропустить встречу встречи с перспективой снова.

    Почему для этой цели используется только приложение exe? Ну, у меня была большая красная коробка, встроенная в VBA, но это решение было полон проблемой (я считаю, что это потому, что я должен использовать hwnd и другое необычное системное свойство, чтобы держать большую красную рамку сверху). Поэтому, чтобы сделать вещи проще, почему бы не базовый EXE, который делает одно. Вы можете использовать бесплатные инструменты от microsoft (Visual Studio Community 2015 бесплатно).

    Это код EXE. Простое приложение для форм с одной формой. Скомпилируйте этот код.

     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 

    Это расширенная версия ответа tbone, которая работает на немецких версиях.

     Private Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Declare PtrSafe Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Boolean Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Boolean Private Declare PtrSafe Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE Private Const HWND_TOPMOST = -1 Private Sub Application_Reminder(ByVal Item As Object) Dim ReminderWindowHWnd As Variant On Error GoTo err 'Loop 25 times as FindWindowA needs exact title which varies according to number of reminder items... Dim iReminderCount As Integer For iReminderCount = 1 To 25 'Try two syntaxes... ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Erinnerung") SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS BringWindowToTop (ReminderWindowHWnd) SetForegroundWindow ReminderWindowHWnd SetFocus ReminderWindowHWnd ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Erinnerung(en)") SetWindowPos ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS BringWindowToTop ReminderWindowHWnd SetForegroundWindow ReminderWindowHWnd SetFocus ReminderWindowHWnd Next Exit Sub err: Debug.Print err.Number & " - " & err.Description & " (iReminderCount = " & iReminderCount & ")" Resume Next End Sub 

    Я добавил названия немецких окон, а также некоторые новые функции ( BringWindowToTop , SetForegroundWindow и SetFocus ).

    Работает на моей немецкой Windows 10 вместе с Outlook 2016.

    Мне не удалось создать новый сертификат (нажатие кнопки «Пуск» и «получение сертификата» ничего не показывало), но просто подбирал другой сертификат в списке при подписании.

    Давайте будем гением компьютера.