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

Comment faire pour que les rappels de l'agenda Outlook restent au top dans Windows 7

Je commence à peine à utiliser Windows 7 et je veux savoir comment faire pour que mes rappels Outlook apparaissent et se mettent en évidence. Ils continuent à s'ouvrir discrètement, comme une fenêtre de plus dans la pile Outlook de la barre des tâches. Comment les rendre moins faciles à ignorer ? (Il est clair qu'on ne veut pas d'applications désagréables qui se mettent en avant. Mais il y a quelques endroits où un tel comportement est souhaitable, et les rappels du calendrier Outlook en font partie).

Réponses (11)

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

J'ai eu le même problème avec Outlook 2010. Utilisez les étapes mentionnées ci-dessous, ça marche comme sur des roulettes. N'oubliez pas d'activer toutes les macros : Trust Center > Macro Settings.

  • Créer un certificat numérique pour plus tard : Cliquez sur Démarrer et tapez “certificat”, sélectionnez “Certificat numérique pour les projets VBA”
  • Entrez un nom pour votre certificat. Cliquez sur OK. Ouvrez Outlook et appuyez sur Alt + F11 pour démarrer l'éditeur VBA.
  • Dans l'arbre à gauche, développez “Microsoft Office Outlook Objects” et double-cliquez sur “ThisOutlookSession”
  • Collez ce code :

  • Signez la macro pour qu'elle s'exécute : Outils > Signature numérique… et choisissez le certificat que vous avez créé précédemment

  • Fermez la fenêtre VBA

  • Activez toutes les macros dans Fichier > Options > Centre de confiance > Paramètres du Centre de confiance > Paramètres des macros

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

AutoHotKey peut également être utilisé pour résoudre ce problème. Ce script mettra la fenêtre de rappel en haut sans voler le focus (testé avec 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 Script - Compilé EXE

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

La meilleure réponse que j'ai trouvée est ici : Comment faire réapparaître les rappels de rendez-vous Outlook devant d'autres fenêtres en utilisant un simple VBA.

Il s'agit d'ajouter quelques lignes de code VBA simple à “ThisOutlookSession”. Maintenant, une fenêtre apparaît à chaque fois. Beaucoup mieux.

  • Créer un certificat numérique pour plus tard
  • Appuyez sur Démarrer et tapez “certificat”, sélectionnez “Certificat numérique pour les projets VBA”
  • Entrez un nom pour votre certificat
  • C'est fait
  • Ouvrez Outlook et appuyez sur Alt + F11 pour lancer l'éditeur VBA. Dans l'arborescence de gauche, développez “Microsoft Office Outlook Objects” et double-cliquez sur “ThisOutlookSession”
  • Collez ce code, en modifiant le texte entre guillemets pour l'adapter à vos préférences. Laissez les guillemets dans

  • Signez la macro pour qu'elle s'exécute en allant dans Outils > Signature numérique… et en choisissant le certificat que vous avez créé précédemment

  • Fermez la fenêtre VBA

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

A partir de la version 1803 (février 2018), l'option “Afficher les rappels en haut des autres fenêtres” est désormais disponible. Elle ne semble pas être activée par défaut.

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

Identique à la réponse de Gullu ci-dessus, mais avec des modifications pour tenir compte du titre différent de la fenêtre :

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

Il n'y a pas moyen. Notre société a essayé de la faire remonter directement à Microsoft. Une chose que les gens font ici, c'est lui attribuer un son plus odieux, pour mieux le remarquer. Mais Microsoft nous a dit que c'était une question de conception.

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

J'ai utilisé Filebox eXtender et lorsque le premier rappel arrive, je l'ouvre et je clique sur la nouvelle icône “pin” en haut à droite de la barre de titre. Ensuite, quand le prochain rappel arrive, il apparaît au premier plan…

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

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

Si vous changez le paramètre “Boutons de la barre des tâches” sous les “Propriétés de la barre des tâches et du menu de démarrage” en “Ne jamais combiner”, alors le regroupement se sépare et le rappel apparaît devant tout ce que vous avez ouvert.

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

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

J'ai trouvé un addin appelé ShowReminders http://www.sagelamp.com/pages/showreminders.aspx ), qui amène la fenêtre des rappels au sommet. Il fonctionne même lorsque vous minimisez la fenêtre de rappel.

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

Il s'agit d'une version améliorée de tbone’s answer qui fonctionne sur les versions allemandes.

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

J'ai ajouté des titres de fenêtres en allemand et également quelques nouvelles fonctions BringWindowToTop , SetForegroundWindow et SetFocus ).

Fonctionne sur mon Windows 10 allemand avec Outlook 2016.

Je n'ai pas réussi à générer un nouveau certificat (appuyer sur Démarrer et entrer “certificat” n'a rien révélé), mais j'ai simplement sélectionné un autre certificat dans la liste lors de la signature.

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

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

Voici comment ne plus jamais manquer un rendez-vous de réunion Outlook.

Pourquoi une application exe autonome juste pour cela ? J'avais la grande boîte rouge intégrée dans le VBA, mais cette solution posait de nombreux 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 au sommet). Donc, pour simplifier les choses, pourquoi ne pas utiliser un EXE de base qui fait une chose. Vous pouvez utiliser les outils gratuits de microsoft (Visual studio Community 2015 est gratuit).

C'est le code de l'EXE. simple application Windows form 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 de 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