128 votes

Comment faire en sorte que les rappels du Calendrier Outlook restent en tête sous Windows 7

Je commence tout juste à utiliser Windows 7 et je voudrais savoir comment faire en sorte que mes rappels Outlook s'affichent de manière proéminente. Ils continuent de s'ouvrir discrètement, comme une fenêtre de plus dans la pile Outlook de la barre des tâches. Par conséquent, je ne les vois jamais car ils apparaissent derrière tout le reste.

Comment puis-je les rendre moins faciles à négliger ?

(Il est clair que l'on ne veut généralement pas d'applications odieuses qui s'imposent au premier plan. Mais il y a quelques endroits où un tel comportement est souhaitable, et les rappels de calendrier Outlook en font partie).

18 votes

C'est tellement nécessaire. Si l'on tombe dans une concentration intense, il est très facile de manquer un rappel et de le remarquer sous d'autres fenêtres seulement après avoir été en retard. Il est ridicule que cela ne soit pas possible avec un simple réglage. À quoi sert un rappel si vous ne l'obtenez pas rapidement !

6voto

Seb Nilsson Points 8619

Même réponse que celle de Gullu ci-dessus, mais avec un changement pour s'adapter à un titre de fenêtre différent :

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

0 votes

Encore mieux, ce serait quelque chose comme Dim olApp As Outlook.Application Set olApp = New Outlook.Application iReminderCount = olApp.Reminders.Count Ensuite, vous pourriez retirer la boucle.

0 votes

@Zusukar Reminders.Count renvoie le nombre total de rappels définis dans les rendez-vous, et non dans la boîte de dialogue de rappel active Dans mon système, cela renvoie 22, par exemple.

0 votes

@Zusukar L'idéal serait d'utiliser la propriété Reminder.IsVisible pour compter les rappels visibles, mais elle est toujours fausse - l'événement se produit probablement avant que le rappel ne soit marqué comme visible.

3voto

Blair Zajac Points 521

Cela me dérangeait aussi. Après quelques recherches intenses, j'ai trouvé une réponse partielle : http://www.pcreview.co.uk/forums/hidden-outlook-reminders-t3972914.html

Si vous modifiez le paramètre "Boutons de la barre des tâches" sous l'onglet "Propriétés de la barre des tâches et du de la barre des tâches et du menu Démarrer" à "Ne jamais combiner". alors le regroupement se sépare et la rappel s'affiche devant tout ce que vous que vous avez ouvert.

J'ai essayé de le tester et j'ai constaté qu'il était incohérent ; une fois, il restait caché derrière ce sur quoi je travaillais, et une autre fois, il apparaissait au premier plan. Dans les deux cas, il y avait une icône sur la barre des tâches qui était différente de celle d'Outlook lui-même, donc il y avait au moins une chance que je la remarque.

0 votes

Impossible de faire en sorte qu'Outlook 2013 se comporte correctement, même avec Never Combine. Outlook 2013, Windows 7 32 bits.

0 votes

Ce n'est pas une bonne solution pour moi, car je préfère que les applications soient combinées dans la barre des tâches.

3voto

jacorb effect Points 31

J'ai utilisé Filebox eXtender et lorsque le premier rappel arrive, je l'ouvre et clique sur la nouvelle icône "épingler" en haut à droite de la barre de légende. Ensuite, lorsque le rappel suivant arrive, il apparaît au premier plan...

0 votes

PinMe ! fera la même chose. Il s'agit d'un outil portable gratuit qui remplit très bien cette tâche. Je l'ai testé sur Outlook 2013 et il fonctionne exactement comme je le souhaite. Qu'Outlook soit au premier plan ou réduit, le rappel du calendrier apparaît toujours au premier plan.

0 votes

@Sun va donner une chance à PinMe !

0 votes

@Sun j'ai configuré "super pin" sur la fenêtre de notification qui devrait s'assurer qu'il est toujours perpétuellement visible quoi qu'il arrive jusqu'à ce que je l'écarte. Cela fonctionne comme annoncé dans la boîte, et cela donne des notifications successives. génial.

1voto

user245293 Points 44

J'ai trouvé un addin appelé ShowReminders ( http://www.sagelamp.com/pages/showreminders.aspx ), qui fait apparaître la fenêtre des rappels en haut de l'écran. Cela fonctionne même lorsque vous minimisez la fenêtre de rappel.

3 votes

Il est indiqué que le produit est à 20 $ en date d'octobre 2014.

0 votes

L'installation échoue pour moi sur Windows 10 : The following package files could not be found: C:\Users\ukeim\AppData\Local\Temp\IXP000.TMP\Office2007PIARe‌​dist\o2007pia.msi

0voto

user2635566 Points 167

J'ai finalement trouvé une solution simple en utilisant Outlook VBA et un simple EXE.

Voici comment ne plus jamais manquer un rendez-vous dans Outlook.

Pourquoi une application exe autonome à cette fin ? Eh bien, j'avais la grande boîte rouge intégrée dans le VBA, mais cette solution était pleine de problèmes (je crois que c'est parce que je dois utiliser hwnd et d'autres propriétés inhabituelles du système pour garder la grande boîte rouge en haut) . Donc, pour simplifier les choses, pourquoi ne pas créer un EXE de base qui ne fait qu'une seule chose. Vous pouvez utiliser les outils gratuits de Microsoft (Visual studio Community 2015 est gratuit).

Voici le code EXE. Application simple de formulaire Windows avec un seul formulaire. Compilez ce 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

Et c'est tout ce dont j'ai besoin dans le VBA d'Outlook. Mettez ceci dans 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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X