سؤال

أنا أعمل على وظيفة VSTO Outlook 2007 الإضافية التي تعمل بشكل أساسي على مزامنة بيانات Outlook مع خدمة الويب.هناك ثلاثة أنواع من المزامنة التي أرغب في الحصول عليها في التطبيق:مزامنة بدء التشغيل والمزامنة اليدوية والمزامنة عند إيقاف التشغيل.الأولين بسيطان وقد تم إنجازهما بالفعل.

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

  • ((Outlook.ApplicationEvents_Event)Application).Quit (يتم تشغيل هذا أولاً، ولكن فات الأوان بالفعل للوصول إلى مجموعات بيانات Outlook وتحديثها)
  • ThisAddIn.Shutdown (هذا واحد يشتعل بعد Quit لذلك فهو ليس جيدًا أيضًا)

هل هناك أي أحداث أخرى تم إطلاقها قبل تلك الأحداث عند إيقاف تشغيل Outlook والتي يمكنني استخدامها؟أو ربما يعرف شخص ما أي طريقة أخرى للتعامل مع المزامنة عند إيقاف التشغيل في الوظيفة الإضافية لـ Outlook؟

هل كانت مفيدة؟

المحلول

يتم إطلاق Explorer.Close() وInspector.Close() قبل Application.Quit() - حيث يمكنك التحقق من:

  • في Explorer.Close():Application.Explorers.Count<=1 وApplication.Inspectors.Count==0
  • في Inspector.Close():Application.Explorers.Count==0 وApplication.Inspectors.Count<=1

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top