none
如何在Win10中使用后台程序管理本机的全部联系人和日历数据 RRS feed

  • 问题

  • 在win8之前的Windows版本中一般都使用VBA从后台完成Outlook联系人、日历的管理。

    Win10上联系人和日历变成了系统应用,此时如果需要从后台实现类似的功能,比如后台程序导出本机全量的联系人和日历数据、在后台向系统插入、修改联系人、导出全量日历项、插入、修改日历项等,是否有对应的接口实现上述需求?Win32程序是否还可以使用VBA控制联系人和日历 ?


    2017年3月20日 7:14

全部回复

  • Office是单独卖的,不是Windows的一部分,Windows不附带VBA支持,VBA的全称是Visual Basic for Applications,是做来扩展应用的,而不是扩展系统的。

    不存在本机全量的联系人和日历这回事。每个邮件客户端的数据都是独立的,比如outlook的联系人存储在pst里面,Outlook Express的联系人存储在wab里面。如果你要改某个邮件客户端的联系人和日历,你需要这个邮件客户端的API,Windows自带的邮件客户端每个操作系统都不同,而且很多时候用户不用,而是用Outlook之类的非系统程序。

    Windows XP: Outlook Express/Windows Address Book 

    Windows Vista:Windows Mail/Windows Contacts

    Windows 7:没有自带邮件客户端

    Windows 8.1/10: Windows.ApplicationModel.Contacts。Win32程序要转制成UWP程序(需要Windows 10支持)才可以用这个API。



    Visual C++ MVP

    2017年3月20日 17:51
  • 多谢回复!

    我想咨询的就是Windows10 上的 Windows.ApplicationModel.Contacts和Windows.ApplicationModel.Appointments,我理解它们对应的分别是Win10上的联系人(或者是人脉)应用和日历应用。主要想了解两个事情,1)联系人和日历否还支持VBA的接口?  2)Windows.ApplicationModel.Contacts和Windows.ApplicationModel.Appointments中的接口是否只有UWP程序才能调用 ,Win32程序是否有办法调用?

    另外您提到Office不是Windows的一部分,但是现在购买的笔记本Win10系统都会自带一个Outlook邮件客户端,请问这个客户端跟Office 中的Outlook的关系是怎么样的?如果用户在Win10上自己安装Office版本比如Office2007,2007带的Outlook与Win10上的Outlook客户端是否可以同时使用?

    2017年3月21日 2:27
  • 联系人和日历不支持VBA。只有UWP程序可以调用UWP的API。Win32程序可以添加UWP支持(不访问沙盒之外的资源并且打包成appx)。

    多个版本的outlook可以共存但是一些功能会出问题



    Visual C++ MVP


    2017年3月21日 13:35
  • “Win32程序添加UWP支持”,我理解就是使用UWP Bridge工具吧,请问在这种方式下程序中是否可以调用  Windows.ApplicationModel.Contacts中的接口?

    2017年3月22日 12:28
  • 上一个回答里面已经说了。


    Visual C++ MVP

    2017年3月22日 14:23
  • 了解了,多谢!
    2017年3月28日 2:27