سؤال كيفية جعل تذكير تقويم Outlook البقاء في المقدمة في Windows 7


لقد بدأت للتو في استخدام Windows 7 وأريد أن أعرف كيفية إنشاء تذكيرات Outlook الخاصة بي وإظهار نفسها بشكل بارز. يحتفظون فتح سرى ، فقط كنافذة أخرى في مكدس Outlook على شريط المهام. ونتيجة لذلك ، أظل أتغاضى عنهم لأنهم يظهرون خلف كل شيء آخر.

كيف أجعلها أقل سهولة في التغاضي عنها؟

(من الواضح أن المرء لا يريد عادة تطبيقات بغيضة تدفع نفسها إلى الصدارة. لكن هناك أماكن قليلة يكون فيها هذا السلوك مرغوبًا فيه ، وتذكيرات تقويم Outlook هي واحدة منها).


112
2018-03-01 21:14


الأصل


هذا ضروري جدا. إذا وقع المرء في تركيز مكثف فمن السهل جدًا أن تفوتك تذكيرًا وتلاحظ أنه دفن تحت النوافذ الأخرى فقط بعد التأخر. إنه أمر مثير للسخرية أنه ليس من الممكن مع بعض الإعدادات البسيطة. ما الجيد هو تذكير إذا كنت لا تحصل عليه على الفور؟! - Mario


الأجوبة:


واجهت نفس المشكلة مع Outlook 2010. استخدم الخطوات المذكورة أدناه ، يعمل مثل السحر. لا تنسَ تمكين جميع وحدات الماكرو: مركز التوثيق> إعدادات الماكرو.

  • إنشاء شهادة رقمية لوقت لاحق: ضرب البداية والنوع "شهادة" ، اختر "شهادة رقمية لمشاريع VBA"
  • أدخل اسم لشهادتك. انقر فوق موافق. افتح Outlook وضرب البديل + 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 Item As Object) On Error Resume Next إذا لم يكن messageAlreadyShown بعد ذلك MsgBox "First Reminder", vbSystemModal, "" إنهاء إذا messageAlreadyShown = True ReminderWindow = FindWindowA (vbNullString، "1 Reminder") SetWindowPos ReminderWindow, HWND_TOPMOST, 0, 0, 0, 0, FLAGS نهاية الفرعية - helios456
واجهت مشكلة في العثور على الأداة لإنشاء شهادة موقعة ذاتيا للماكرو. لقد وجدت في C: \ Program Files \ Microsoft Office \ OfficeXX ، أداة SELFCERT.EXE. - SSZero
لقد غيرت لي العثور على "تذكير (1)" ثم عملت. - Robert Brooker


يمكن أيضًا استخدام 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 - جمعت إكس


14
2018-02-02 12:58



+1 لاستخدام AHK. لقد اختبرت هذا في الفوز 7 / outlook 2016. إنه يجلب وجهة النظر إلى الأمام ولكن لا يسرق بالفعل التركيز إذا كنت تكتب. بالضبط ما أردت! (أنا فقط إزالة نصائح صينية على الرغم من :)) - Fawix
لاحظ أن هناك طريقة سهلة للغاية لبدء البرنامج النصي بنوافذ. فقط ضعها على المجلد C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup - Fawix
يتم تعطيل ارتباطات AHK Script و EXE المترجمة. أنا نسخ ولصق البرنامج النصي أعلاه إلى برنامج نصي AutoHotKey.ahk وانها لم تنجح. - Mike Cole
هذا عمل مثل سحر بالنسبة لي. كان AHK أول شيء حاولت ، ولكن لسبب ما لم أتمكن من الحصول عليه للكشف عن النافذة. شكر! - Grinn
هنا هو EXE المترجمة drive.google.com/file/d/0B_pJVd8U0PfcWkZWNmhEYncwQjA/view - user664174


أفضل إجابة وجدتها هنا: كيفية الحصول على تذكير موعد Outlook إلى المنبثقة أمام النوافذ الأخرى مرة أخرى باستخدام بعض VBA بسيطة.

ويستلزم إضافة بضعة أسطر من رمز VBA بسيط إلى "ThisOutlookSession". الآن ، تنبثق نافذة في كل مرة. أفضل بكثير.

  • قم بإنشاء شهادة رقمية في وقت لاحق
  • ابدأ البداية واكتب "شهادة" ، وحدد "الشهادة الرقمية لمشاريع VBA"
  • أدخل اسم لشهادتك
  • فعله
  • افتح Outlook واضغط على Alt + F11 لبدء تشغيل محرر VBA.
  • في الشجرة على اليسار ، وسّع "Microsoft Outlook 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

13
2018-03-13 23:10



حاول هذا في Outlook 2010 ، ويندوز 7 لكنه لم يعمل :( - tekumara
استخدم هذا كجزء من حل Gullu. شكرا جزيلا. - Smandoli
هذا العمل على Outlook 2007 ، في حين لم يفعل Gullu. - Will Sheppard


لا توجد طريقة. حاولت الشركة تصعيده إلى Microsoft مباشرة. هناك شيء واحد يفعله الناس هنا هو تعيينه صوتًا أكثر بغيضًا ، للمساعدة في ملاحظة ذلك. لكن مايكروسوفت أخبرتنا أنه حسب التصميم.


6
2018-03-01 21:34



أنا أعمل في مزرعة مكعب - أحاول أن أظل جهاز الكمبيوتر الخاص بي هادئ للآخرين. :( - thursdaysgeek
إذا كانوا يصممون حقا ، فإنهم سوف يجعلون ذلك الطريق افتراضيا ، ولكن يسمحوا بتغييره. انهم "تصميم" ، ونحن نتعلم كيف نتعايش معها؟ - thursdaysgeek
انظر جوابي. لدينا أخيرا الحل. - Gullu
لقد وجدت حل طرف ثالث. الأدوات الفعلية حارس النافذة الفعلية 30 دولار (والتي يتم تضمينها أيضا في جميع المنتجات شاملة الفعلي ويندوز مدير 50 دولارًا) يسمح بتخصيص النوافذ لتكون دائمًا في المقدمة. بالإضافة إلى سهولة تشغيل الميزة وإيقافها. (لاحظ أنها تقوم بأكثر من ذلك فقط للمساعدة في تسهيل قبول بطاقة الأسعار.) وجدت هذه الأدوات عند تجربة أدوات أدوات سطح المكتب الافتراضية وأدوات المراقبة المتعددة. لقد تم استخدام هذا الأخير لبضعة أشهر الآن وأنا سعيد جدا معها. - Javaru
أعتقد أن الحل هو استخدام أداة أفضل! لسوء هذا ليس خيارا بالنسبة لي :( - Jonathan Benn


تمامًا مثل أنو Gullu ، ولكن مع التغيير لاستيعاب عنوان النافذة المختلفة:

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
هذا تحديث ممتاز لسؤال قديم. لاحظ أن هذا ليس هو نفسه تمامًا مثل "دائمًا في المقدمة" ، ولكنه يضمن أن النافذة لا تظهر في الجزء العلوي من الترتيب التصاعدي ، بحيث يقل احتمال افتقاد المستخدمين لها. - Marc LaFleur


كان هذا التنصت لي أيضا. بعد بعض البحث المكثف وجدت إجابة جزئية: http://www.pcreview.co.uk/forums/hidden-outlook-reminders-t3972914.html

إذا قمت بتغيير "أزرار شريط المهام"   الإعداد تحت "شريط المهام والبدء   خصائص القائمة "إلى" لا تجمع أبدًا "   ثم يفصل التجميع و   تذكير للملوثات العضوية الثابتة المتابعة أمام أي شيء   آخر لديك مفتوحة.

حاولت اختبارها ووجدت أنها غير متناسقة. مرة واحدة بقيت مخبأة وراء ما كنت أعمل عليه ، ومرة ​​أخرى برزت الجبهة. في كلتا الحالتين كان هناك رمز على شريط المهام الذي بدا مختلفًا عن Outlook نفسه ، لذلك كان هناك على الأقل فرصة أن ألاحظ ذلك.


3
2018-05-10 17:21



تعذر الحصول على Outlook 2013 ليتصرف بشكل صحيح حتى مع عدم الدمج أبدًا. توقعات 2013 ، ويندوز 7 32 بت. - Sun
هذا ليس حلاً جيدًا بالنسبة لي ، لأنني أفضل أن يتم دمج التطبيقات في شريط المهام - Jonathan Benn