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


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

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

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


111
2018-03-01 21:14


Источник


Это так необходимо. Если кто-то попадает в интенсивную концентрацию, очень легко пропустить напоминание и заметить, что он похоронен под другими окнами только после того, как вы опоздали. Смешно, что это невозможно с некоторыми простыми настройками. Какая польза от напоминания, если вы не получите его быстро! - Mario


Ответы:


У меня была такая же проблема с 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
  • Включить все макросы в «Файл»> «Параметры»> «Центр доверия»> «Настройки центра клиентов»> «Параметры макроса»

57
2017-08-16 15:19



я заметил, иногда (обычно при запуске Outlook) первое напоминание не останется на вершине. Как только вы нажмете «Отклонить» и закройте напоминание, все последующие напоминания остаются на вершине. Не знаю, почему. - Gullu
On Error Resume Next применяется только к этому Sub и просто предотвращает сбой всего макроса. Это просто стандартное использование VBA. - Jeff Martin
У меня была такая же проблема, как указал Гуллу в его первом комментарии. Чтобы обойти это, я показываю окно сообщения для первого напоминания после перезапуска Outlook (или моего компьютера). Private messageAlreadyShown As Boolean Private Sub Application_Reminder (объект ByVal как объект) On Error Resume Next Если Not messageAlreadyShown Then MsgBox "First Reminder", vbSystemModal, "" Конец Если messageAlreadyShown = True ReminderWindow = FindWindowA (vbNullString, «1 напоминание») SetWindowPos ReminderWindow, HWND_TOPMOST, 0, 0, 0, 0, FLAGS End Sub - helios456
Мне не удалось найти инструмент для создания самозаверяющего сертификата для макроса. Я нашел его в C: \ Program Files \ Microsoft Office \ OfficeXX, инструменте SELFCERT.EXE. - SSZero
Я поменял свое, чтобы найти «1 напоминание», а затем он сработал. - Robert Brooker


Лучший ответ, который я нашел, здесь: Как получить напоминания о назначении 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

13
2018-03-13 23:10



Пробовал это в Outlook 2010, Windows 7, но это не сработало :( - tekumara
Используется в качестве части решения Gullu. Большое спасибо. - Smandoli
Это работало в Outlook 2007, а у Гуллу этого не было. - Will Sheppard


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


13
2018-02-02 12:58



+1 для использования AHK. Я просто проверил это в win 7 / outlook 2016. Он отображает представление спереди, но на самом деле он не украл фокус, если вы печатаете. Именно то, что я хотел! (Я просто удалил подсказки в лотке, хотя :)) - Fawix
Обратите внимание, что есть очень простой способ запустить скрипт с окнами. Просто поместите его в папку C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup - Fawix
Сценарий AHK Script и Compiled EXE нарушены. Я скопировал и вставил сценарий выше в мой скрипт AutoHotKey.ahk, и это не сработало. - Mike Cole
Это работало для меня как прелесть. AHK был первым, что я пробовал, но по какой-то причине я не мог заставить его обнаружить окно. Благодаря! - Grinn
вот компилируемый EXE drive.google.com/file/d/0B_pJVd8U0PfcWkZWNmhEYncwQjA/view - user664174


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


6
2018-03-01 21:34



Я работаю на кубической ферме - я стараюсь, чтобы мой компьютер был тихим для других. :( - thursdaysgeek
Если бы они действительно разрабатывались, они по умолчанию делали бы это так, но позволяли бы его изменять. Они «проектируют», мы учимся мириться с этим? - thursdaysgeek
См. Мой ответ. У нас наконец есть решение. - Gullu
Я нашел третье решение. Фактические инструменты Активный Охранник 30 долларов США (которые также включены в их весь комплексный продукт Фактический менеджер Windows $ 50) позволяет назначать окна всегда на вершине. Плюс его легко включить и выключить функцию. (обратите внимание, что это делает больше, чем просто для того, чтобы облегчить принятие ценового тезиса.) Я нашел их, когда тестировал утилиты для виртуальных настольных и мульти-мониторов. Я использую последний пару месяцев и очень доволен этим. - Javaru
Я думаю, что решение - использовать лучший инструмент! Для плохого, это не выбор для меня :( - Jonathan Benn


То же, что и выше, чем у 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

6
2018-02-03 19:29



Еще лучше было бы что-то вроде Dim olApp As Outlook.Application Set olApp = New Outlook.Application iReminderCount = olApp.Reminders.Count Затем вы можете удалить цикл. - Zusukar
@Zusukar Reminders.Count возвращает общее количество напоминаний, установленных в встречах, а не в диалоговом окне активного напоминания. В моей системе это возвращает 22, например. - Geoff
@ Zusukar В идеале вы можете использовать свойство Reminder.IsVisible для подсчета видимых, но это всегда неверно - предположительно событие происходит до того, как напоминание будет отмечено как видимое. - Geoff


Начиная с версии 1803 (февраль 2018 года) теперь доступна опция «Показать напоминания поверх других окон». По умолчанию он не включен.

enter image description here


4
2018-06-01 16:58



У меня пока нет обновленной версии, но это здорово! И прошло уже 7 лет с тех пор, как я тоже спросил. (И это не в MS, а также благодаря вам.) - thursdaysgeek
Это отличное дополнение к старому вопросу. Обратите внимание, что это не совсем то же самое, что «всегда сверху», но это гарантирует, что окно будет всплывать в верхней части z-порядка, чтобы пользователи с меньшей вероятностью его пропустили. - Marc LaFleur


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

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

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


3
2018-05-10 17:21



Не удалось заставить Outlook 2013 корректно вести себя даже с Never Combine. Outlook 2013, Windows 7 32-бит. - Sun
Это не очень хорошее решение для меня, поскольку я предпочитаю, чтобы приложения объединялись в панели задач - Jonathan Benn


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


3
2017-12-21 00:26



PinMe! будет делать то же самое. Это бесплатный портативный инструмент и делает эту задачу очень хорошо. Я тестировал его в Outlook 2013, и он работает именно так, как я хочу. Перспективы Outlook или минимизированы, напоминание о календаре всегда появляется на передней панели. - Sun
@Sun собирается дать PinMe! выстрел - Chris Marisic
@Sun i setup «super pin» в окне уведомлений, которое должно быть уверенным, что оно всегда постоянно видимо независимо от того, до тех пор, пока я его не отпущу. Работает так, как рекламируется из коробки, и обеспечивает последовательные уведомления. здорово. - Chris Marisic
Я пробовал PinMe и не могу заставить окно оставаться на вершине, вообще !! ?? - tbone


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


1
2017-08-13 12:58



Говорит, что продукт составляет 20 долларов США по состоянию на октябрь 2014 года. - Sun
Программа установки не работает для Windows 10: The following package files could not be found: C:\Users\ukeim\AppData\Local\Temp\IXP000.TMP\Office2007PIARedist\o2007pia.msi - Uwe Keim