Windows 7에서 Outlook 일정 알림을 최신 상태로 유지하는 방법


123

방금 Windows 7을 사용하기 시작했으며 Outlook 알림을 표시하고 눈에 잘 띄게 표시하는 방법을 알고 싶습니다. 작업 표시 줄의 Outlook 스택에있는 또 다른 창처럼 신중하게 계속 열립니다. 결과적으로, 나는 그것들이 다른 모든 것 뒤에 튀어 나오므로 계속 간과합니다.

간과하기 쉽지 않은 방법은 무엇입니까?

(분명히, 자신을 최전선으로 몰아 넣는 독창적 인 앱은 원하지 않습니다. 그러나 그러한 행동이 바람직한 곳이 몇 개 있으며 Outlook 일정 알림이 그 중 하나입니다.)


16
이것은 매우 필요합니다. 집중력이 떨어지면 알림을 놓치기 쉽고 늦게 도착했을 때만 다른 창에 묻히는 것을 알 수 있습니다. 간단한 설정으로는 불가능하다는 것은 우스운 일입니다. 당신이 그것을 즉시 얻지 않으면 미리 알림은 무엇입니까?!
마리오

답변:


61

Outlook 2010에서도 같은 문제가있었습니다. 아래 언급 된 단계를 사용하면 매력처럼 작동합니다. 모든 매크로를 활성화하는 것을 잊지 마십시오 : 보안 센터> 매크로 설정.

  • 나중에 디지털 인증서 생성 : 시작을 누르고 '인증서'를 입력 한 다음 'VBA 프로젝트의 디지털 인증서'를 선택하십시오.
  • 인증서 이름을 입력하십시오. 확인을 클릭하십시오. Outlook을 열고 Alt+ F11를 눌러 VBA 편집기를 시작하십시오.
  • 왼쪽의 트리에서 'Microsoft Office Outlook Objects'를 펼치고 '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 창을 닫습니다
  • 파일> 옵션> 보안 센터> 보안 센터 설정> 매크로 설정에서 모든 매크로를 사용하십시오.

3
때때로 (일반적으로 Outlook을 시작할 때) 첫 번째 알림이 맨 위에 표시되지 않는 것을 알았습니다. 닫기를 클릭하고 미리 알림을 닫으면 이후의 모든 미리 알림이 맨 위에 유지됩니다. 이유를 모릅니다.
Gullu

3
이 기능 On Error Resume Next은 해당 Sub에만 적용되며 전체 매크로가 충돌하는 것을 방지합니다. 이는 표준 VBA 사용에 불과합니다.
Jeff Martin

3
나는 Gullu가 그의 첫 번째 논평에서 지적한 것과 같은 문제가 있었다. 이를 해결하기 위해 Outlook (또는 내 컴퓨터)을 다시 시작한 후 첫 번째 알림 메시지 상자를 표시합니다. Private messageAlreadyShown As Boolean Private Sub Application_Reminder (ByVal Item As Object) On Error Resume Next messageAlreadyShown이 아닌 MsgBox "First Reminder", vbSystemModal, "" 경우 messageAlreadyShown = True SetWindowPos ReminderWindow, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
Endm

3
매크로에 대한 자체 서명 인증서를 작성하는 도구를 찾는 데 문제가있었습니다. C : \ Program Files \ Microsoft Office \ OfficeXX 도구 SELFCERT.EXE에서 찾았습니다.
SSZero

3
"1 알림"을 ​​찾도록 변경했습니다.
Robert Brooker 1

18

이 문제를 해결하기 위해 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


AHK 사용시 +1 방금 win 7 / outlook 2016에서 이것을 테스트했습니다.보기를 앞쪽으로 가져 오지만 입력하는 경우 실제로 초점을 훔치지는 않습니다. 정확히 내가 원하는 것! (방금 트레이 팁을 제거했습니다.)
Fawix

1
스크립트를 Windows로 시작하는 매우 쉬운 방법이 있습니다. 그냥 폴더에 넣어C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Fawix

AHK 스크립트 및 컴파일 된 EXE 링크가 손상되었습니다. 위의 스크립트를 내 AutoHotKey.ahk 스크립트에 복사하여 붙여 넣었지만 작동하지 않습니다.
Mike Cole


1
shell:startup주소 표시 줄 또는 실행 상자 에 입력하면 시작 폴더에 쉽게
Gert van den Berg

13

내가 찾은 가장 좋은 대답은 다음과 같습니다 . 간단한 VBA를 사용하여 Outlook 약속 미리 알림을 다른 창 앞에 다시 표시하는 방법.

"ThisOutlookSession"에 간단한 VBA 코드 몇 줄을 추가해야합니다. 이제 매번 창이 나타납니다. 훨씬 낫다.

  • 나중에 디지털 인증서 생성
  • 시작을 누르고 '인증서'를 입력하고 'VBA 프로젝트의 디지털 인증서'를 선택하십시오.
  • 인증서 이름을 입력하십시오
  • 끝난
  • Outlook을 열고 Alt + F11을 눌러 VBA 편집기를 시작하십시오.
  • 왼쪽의 트리에서 'Microsoft Office Outlook Objects'를 펼치고 '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 창을 닫습니다

Outlook 2010, Windows 7에서 이것을 시도했지만 작동하지 않았습니다 :(
tekumara

이것을 Gullu 솔루션의 일부로 사용했습니다. 감사합니다.
Smandoli

이것은 Gullu와 달리 Outlook 2007에서 작동했습니다.
윌 셰퍼드

7

버전 1803 (2018 년 2 월)부터 "다른 창 위에 알림 표시"옵션을 사용할 수 있습니다. 기본적으로 활성화되어 있지 않습니다.

여기에 이미지 설명을 입력하십시오


3
아직 업데이트 된 버전이 없지만 이것은 훌륭합니다! 그리고 제가 요청한 지 7 년이 지났습니다. (그리고 그것은 당신에게 감사 할뿐만 아니라 MS에서 dis입니다.)
thursdaysgeek

2
이것은 오래된 질문에 대한 훌륭한 업데이트입니다. "always on top"과 완전히 동일하지는 않지만, z 순서의 맨 위에 창이 팝업되도록하여 사용자가 놓칠 가능성이 적습니다.
Marc LaFleur

6

방법이 없다. 우리 회사는 Microsoft에 직접 이관하려고했습니다. 사람들이 여기에서하는 한 가지는 더 눈에 잘 띄지 않게하는 소리입니다. 그러나 Microsoft는 의도적으로 설계된 것이라고 말했습니다.


11
저는 큐브 팜에서 일합니다. 다른 사람들을 위해 컴퓨터를 조용하게 유지하려고합니다. :(
thursdaysgeek

3
만약 그들이 정말로 디자인했다면, 기본적으로 그런 방식으로 만들지 만 그것을 바꿀 수 있습니다. 그것들은 "디자인"입니다.
thursdaysgeek

내 대답을 참조하십시오. 마침내 해결책이 있습니다.
Gullu

타사 솔루션을 찾았습니다. 실제 도구 실제 창 가드 $ 30 (모든 제품을 포함하는 실제 Windows 관리자 $ 50 에도 포함됨 )을 사용하면 창을 항상 맨 위에 배치 할 수 있습니다. 또한 기능을 쉽게 켜고 끌 수 있습니다. (가격표를보다 쉽게 ​​받아 들일 수있게하는 것 이상의 역할을합니다.) 가상 데스크탑 및 다중 모니터 유틸리티 도구를 시험해볼 때 이러한 점을 발견했습니다. 나는 후자를 몇 달 동안 사용해 왔으며 매우 기쁘게 생각합니다.
Javaru

해결책은 더 나은 도구를 사용하는 것입니다! 나쁘게도 그것은 나를위한 선택이 아닙니다 :(
Jonathan Benn

6

위의 Gullu의 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

더 나은 것이 좋습니다. Dim olApp As Outlook.Application Set olApp = New Outlook.Application iReminderCount = olApp.Reminders.Count그러면 루프를 제거 할 수 있습니다.
Zusukar

@Zusukar Reminders.Count는 활성 미리 알림 대화 상자가 아닌 약속에 설정된 총 미리 알림 수를 반환합니다. 예를 들어 내 시스템에서는 22를 반환합니다.
Geoff

@Zusukar Reminder.IsVisible 속성을 사용하여 보이는 것을 계산할 수 있지만, 이는 항상 거짓입니다. 아마도 알림이 표시되는 것으로 표시되기 전에 이벤트가 발생했을 것입니다.
Geoff

3

이것은 나도 나를 괴롭혔다. 몇 가지 강렬한 검색 후 부분 답변을 찾았습니다 : http://www.pcreview.co.uk/forums/hidden-outlook-reminders-t3972914.html

"작업 표시 줄 및 시작 메뉴 속성"에서 "작업 표시 줄 단추"설정을 "절대로 결합하지 않음"으로 변경하면 그룹이 분리되고 열려있는 다른 항목 앞에 미리 알림이 나타납니다.

나는 그것을 시험하려고했고 그것이 일관성이 없다는 것을 알았다. 한 번은 내가 작업했던 내용 뒤에 숨겨져 있었고, 또 한 번은 갑자기 나타났습니다. 두 경우 모두 작업 표시 줄에 Outlook과 다른 모양의 아이콘이 있었으므로 적어도 눈에 띄게 될 가능성이있었습니다.


Never Combine으로도 Outlook 2013이 올바르게 작동하지 못했습니다. Outlook 2013, Windows 7 32 비트
일요일

이것은 내가 애플 리케이션을 선호으로 작업 표시 줄에 결합, 나를 위해 좋은 해결책이 아니다
조나단 벤

3

Filebox eXtender를 사용 했는데 첫 번째 알림이 들어 오면이를 열고 캡션 표시 줄의 오른쪽 상단에있는 새로운 '핀'아이콘을 클릭합니다. 그런 다음 다음 알림이 오면 포 그라운드로 들어옵니다.


PinMe! 똑같이 할 것입니다. 그것은 무료 휴대용 도구 이며이 하나의 작업을 매우 잘 수행합니다. Outlook 2013에서 테스트했으며 원하는대로 정확하게 작동합니다. Outlook 포 그라운드 또는 최소화 된 일정 알림은 항상 앞쪽으로 튀어 나옵니다.
일요일

@Sun은 PinMe를 줄 것입니다! 샷
Chris Marisic 2016 년

@Sun i 알림 창에서 "슈퍼 핀"을 설정하면 알림 창을 닫을 때까지 무엇이든 상관없이 항상 표시되도록해야합니다. 광고 된대로 작동하며 연속 알림을 제공합니다. 대박.
Chris Marisic 2016 년

PinMe를 사용해 보았는데 창을 맨 위에 두지 못했습니다.
tbone

1

미리 알림 창을 맨 위로 가져 오는 ShowReminders ( http://www.sagelamp.com/pages/showreminders.aspx ) 라는 추가 기능을 찾았습니다 . 미리 알림 창을 최소화 한 경우에도 작동합니다.


3
제품은 2014 년 10 월 기준으로 20 달러라고합니다.
Sun

Windows 10에서 설치가 실패 함 :The following package files could not be found: C:\Users\ukeim\AppData\Local\Temp\IXP000.TMP\Office2007PIARedist\o2007pia.msi
Uwe Keim

0

마침내 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

그리고 이것이 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

0

이것은 독일어 버전에서 작동 하는 향상된 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, SetForegroundWindowSetFocus)을 추가했습니다.

독일어 Windows 10에서 Outlook 2016과 함께 작동합니다.

나는 않았다 없는 새 인증서를 (시작을 눌러 "인증서"를 입력 아무것도 보이지 않았다) 생성, 관리, 그러나 서명 할 때 단순히 목록에서 다른 인증서를 선택했습니다.


이로 인해 응용 프로그램이 깜박이지만 알림 창이 앞쪽으로 표시되지 않습니다
KIC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.