2011-03-01 21:14:47 +0000 2011-03-01 21:14:47 +0000
125
125

Wie kann ich dafür sorgen, dass Outlook-Kalendererinnerungen in Windows 7

oben bleiben? Ich fange gerade erst an, Windows 7 zu verwenden, und möchte wissen, wie ich dafür sorgen kann, dass meine Outlook-Erinnerungen auftauchen und sich an prominenter Stelle zeigen. Sie öffnen sich weiterhin diskret, wie ein weiteres Fenster im Outlook-Stapel auf der Taskleiste. Infolgedessen übersehe ich sie immer wieder, weil sie hinter allem anderen auftauchen.

Wie kann ich dafür sorgen, dass sie weniger leicht zu übersehen sind?

(Natürlich will man normalerweise keine unangenehmen Anwendungen, die sich in den Vordergrund drängen. Aber es gibt einige wenige Stellen, an denen ein solches Verhalten wünschenswert ist, und Outlook-Kalendererinnerungen sind eine davon).

Antworten (11)

62
62
62
2012-08-16 15:19:38 +0000

Ich hatte das gleiche Problem mit Outlook 2010. Verwenden Sie die unten genannten Schritte, es funktioniert wie ein Zauber. Vergessen Sie nicht, alle Makros zu aktivieren: Trust Center > Makroeinstellungen.

  • Erstellen Sie ein digitales Zertifikat für später: Klicken Sie auf Start und geben Sie ‘Zertifikat’ ein, wählen Sie ‘Digitales Zertifikat für VBA-Projekte’
  • Geben Sie einen Namen für Ihr Zertifikat ein. Klicken Sie auf OK. Öffnen Sie Outlook und drücken Sie Alt + F11, um den VBA-Editor zu starten.
  • Erweitern Sie im Baum auf der linken Seite ‘Microsoft Office Outlook Objects’ und doppelklicken Sie auf ‘ThisOutlookSession’
  • Fügen Sie diesen Code ein:

  • Signieren Sie das Makro, damit es ausgeführt wird: Extras > Digitale Signatur… und wählen Sie das Zertifikat, das Sie zuvor erstellt haben

  • Schließen Sie das VBA-Fenster

  • Aktivieren Sie alle Makros in Datei > Optionen > Vertrauenscenter > Vertrauenscenter-Einstellungen > Makro-Einstellungen

18
18
18
2016-02-02 12:58:33 +0000

AutoHotKey kann auch zur Lösung dieses Problems verwendet werden. Dieses Skript setzt das Erinnerungsfenster an den Anfang, ohne den Fokus zu stehlen (getestet mit 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-Skript - Compiled EXE

13
13
13
2012-03-13 23:10:09 +0000

Die beste Antwort, die ich gefunden habe, ist hier: Wie Sie Outlook-Termin-Erinnerungen mit Hilfe von einfachem VBA wieder vor anderen Fenstern erscheinen lassen können.

Dazu müssen ein paar Zeilen einfachen VBA-Codes zu “DieseOutlookSitzung” hinzugefügt werden. Jetzt wird jedes Mal ein Fenster eingeblendet. Viel besser.

  • Erstellen Sie ein digitales Zertifikat für später
  • Drücken Sie Start und geben Sie ‘Zertifikat’ ein, wählen Sie ‘Digitales Zertifikat für VBA-Projekte’
  • Geben Sie einen Namen für Ihr Zertifikat ein
  • Fertig
  • Öffnen Sie Outlook und drücken Sie Alt + F11, um den VBA-Editor zu starten.
  • Erweitern Sie im Baum auf der linken Seite ‘Microsoft Office Outlook-Objekte’ und doppelklicken Sie auf ‘DieseOutlookSitzung’
  • Fügen Sie diesen Code ein und ändern Sie den Text in Anführungszeichen entsprechend Ihren Wünschen. Lassen Sie die Anführungszeichen drin

  • Signieren Sie das Makro, damit es ausgeführt wird, indem Sie zu Extras > Digitale Signatur… gehen und das zuvor erstellte Zertifikat auswählen

  • Schließen Sie das VBA-Fenster

7
7
7
2018-06-01 16:58:06 +0000

Ab Version 1803 (Februar 2018) ist jetzt die Option “Erinnerungen über anderen Fenstern anzeigen” verfügbar. Sie scheint nicht standardmäßig aktiviert zu sein.

6
6
6
2015-02-03 19:29:07 +0000

Wie Gullu’s Antwort oben, aber mit Änderung zur Anpassung an einen anderen Fenstertitel:

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
6
6
2011-03-01 21:34:50 +0000

Es gibt keine Möglichkeit. Unser Unternehmen hat versucht, es direkt an Microsoft zu eskalieren. Eine Sache, die die Leute hier tun, ist, dem Ganzen einen unangenehmeren Klang zu geben, damit es besser auffällt. Aber Microsoft hat uns gesagt, dass es absichtlich so klingt.

3
3
3
2011-12-21 00:26:04 +0000

Ich habe Filebox eXtender verwendet und wenn die erste Erinnerung eintrifft, öffne ich sie und klicke auf das neue ‘Pin’-Symbol oben rechts in der Titelleiste. Wenn dann die nächste Erinnerung kommt, kommt sie in den Vordergrund…

3
3
3
2011-05-10 17:21:18 +0000

Das hat mich auch genervt. Nach intensiver Suche fand ich eine Teilantwort: http://www.pcreview.co.uk/forums/hidden-outlook-reminders-t3972914.html

Wenn Sie die Einstellung “Taskleisten-Schaltflächen” unter “Eigenschaften der Taskleiste und des Startmenüs” in “Niemals kombinieren” ändern, dann trennt sich die Gruppierung und die Erinnerung erscheint vor allem, was Sie geöffnet haben.

Ich habe versucht, sie zu testen und fand, dass sie inkonsistent war; einmal blieb sie hinter dem verborgen, woran ich arbeitete, und ein anderes Mal tauchte sie vorne auf. In beiden Fällen gab es ein Symbol in der Taskleiste, das anders aussah als Outlook selbst, so dass zumindest die Chance bestand, dass es mir auffiel.

1
1
1
2013-08-13 12:58:14 +0000

Ich habe ein Addin namens ShowReminders http://www.sagelamp.com/pages/showreminders.aspx ) gefunden, das das Erinnerungsfenster ganz nach oben bringt. Es funktioniert sogar, wenn Sie das Erinnerungsfenster minimieren.

0
0
0
2015-11-10 11:12:56 +0000

Dies ist eine verbesserte Version von tbone’s answer , die auf deutschen Versionen funktioniert.

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

Ich habe deutsche Fenstertitel und auch einige neue Funktionen hinzugefügt BringWindowToTop , SetForegroundWindow und SetFocus ).

Funktioniert auf meinem deutschen Windows 10 zusammen mit Outlook 2016.

Ich schaffte es nicht, ein neues Zertifikat zu erzeugen (Drücken von Start und Eingabe von “Zertifikat” ergab nichts), sondern wählte beim Signieren einfach ein anderes Zertifikat in der Liste aus.

0
0
0
2015-08-07 19:48:32 +0000

Ich finde endlich eine einfache Lösung mit Outlook VBA und einer einfachen EXE.

Hier erfahren Sie, wie Sie nie wieder einen Outlook-Termin verpassen.

Warum eine eigenständige exe-Anwendung nur für diesen Zweck? Nun, ich hatte den großen roten Kasten in das VBA eingebettet, aber diese Lösung war voller Probleme (ich glaube, es liegt daran, dass ich hwnd und andere ungewöhnliche Systemeigenschaften verwenden muss, um den großen roten Kasten oben zu halten) . Um die Dinge einfacher zu machen, warum also nicht eine einfache EXE, die eine Sache tut. Sie können kostenlose Tools von Microsoft verwenden (Visual Studio Community 2015 ist kostenlos).

Dies ist der EXE-Code. einfache Windows-Formular-Anwendung mit einem Formular. Kompilieren Sie diesen Code.

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

Und das ist alles, was ich in der Outlook-VBA brauche. Setzen Sie dies in dieseOutlookSession

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