问题标签 [office-pia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
236 浏览

vb.net - PIA Outlook Office 库

我有一个简单的问题。

我为outllook安装了PIA Office 15.0,并在我的winform .net应用程序中提供了参考。

我只是想知道如果我在具有较低版本 Outlook(例如 Outlook 2007/2010)的机器上部署此应用程序,我的应用程序会正常工作吗?

抱歉,这是我为我的应用程序提供的 14.0 Outlook PIA 参考。和代码是

` 将 OutlookMes​​sage 调暗为 outlook.MailItem 将 AppOutlook 调暗为新的 Outlook.Application 尝试将 oApp 调暗为 Microsoft.Office.Interop.Outlook._Application oApp = 新的 Microsoft.Office.Interop.Outlook.Application

它给出了 Office 2007 的错误。

0 投票
1 回答
570 浏览

visual-studio - Office 2010 64 位 PIA

我有一台安装了 VS 2010、VS 2012 和 Office 2013 64 位的 Windows 8 机器。

我们有一个大型的 VS 2010、Excel 2010 插件模板项目,我们能够在装有 Office 2010/2013 32 位的机器上正常运行和调试。然而,在这台装有 Office 2013 64 位的机器上,我们得到一个 COMException 说:

由于以下错误,检索具有 CLSID {62F8CCF6-3C71-11D2-8B38-00A0C970A730} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

我确保该项目是为 64 位架构构建的。

我们已经在这台机器上安装了 Office 2010 PIA ( http://www.microsoft.com/en-in/download/details.aspx?id=3508 ),之后我们能够构建和运行 Excel 加载项项目,但是它在运行时生成 COMException。

我们使用 VS 2012 创建了另一个 Excel 2013 模板加载项项目,我们能够在 Office 2013 64 位中构建、部署和调试它。

因此,在此设置中,可以做些什么来使 Office 2010 模板项目在 VS 2010/2012 中可调试。

0 投票
1 回答
1466 浏览

c# - .NET 项目中的多个版本的 Office 主互操作程序集

我正在使用 Office 主互操作程序集从我的 WPF 应用程序控制 PowerPoint。目前我在我的项目中使用 PIA v14,它适用于 Office 2010 和 Office 2013,没有问题。但我还需要添加对 Office 2007 的支持(当我在使用 Office 2007 的计算机上测试我的应用程序时,它不起作用)。

所以,我的问题是:我应该将我在项目中引用的 PIA 更改为 v12(以支持 Office 2007/2010/2013)还是可以将 v12 和 v14(也可能是 v15)PIA 添加到项目中并动态加载正确基于目标计算机上安装的 Office 版本的应用程序启动期间的程序集版本?此外,如果我将在所有 Office 版本 (2007/2010/2013) 上使用 PIA v12,是否存在一些兼容性风险?

0 投票
1 回答
147 浏览

vb.net - 在 VS 2010 中将 PIA 14 更改为 PIA 15 后,MS word 2013 未启动

我在 Visual Studio 2010 中使用 Office 2010 的互操作程序集开发了一个办公应用程序。这里提到的 PIA 是 14。在这里一切正常。现在我已将 Office 2010 更改为 2013,因此在 VS 2010 中引用了 PIA 15。项目成功构建。当我运行应用程序时,word 文档启动,但办公室配置设置也开始,完成设置后提示关闭启动了 office 组件。它在将 office 2010 更改为 2013 后开始发生。我尝试从项目中删除旧引用并再次为 Office 15 库添加。但仍然相同。经过大量搜索,我在我的 .vbproj 文件中找到了一些东西

这里有什么需要改变的吗?另外我已经在VS 2010 Ultimate中完成了Office 2010的开发。现在我已经开始在VS 2010 Professional中开发Office 2013应用程序。这会引起任何问题吗?

请指导。

0 投票
1 回答
103 浏览

c# - 如何在 Outlook PIA 实现中处理应用程序生命周期

问题陈述

当 Outlook 退出时,通过 PIA 注册的任何事件都将丢失,并且当前在内存中的任何 PIA 对象都将无法访问。

重现

这是一个简单的控制台应用程序,说明了手头的问题:

当我运行此应用程序时,如果 Outlook 尚未运行,它会在单独的进程(显示在系统托盘中)中启动 Outlook 实例。我知道有三种情况会导致Quit事件触发:

  1. Outlook 处于“隐藏”状态,可通过从系统托盘图标的上下文菜单中选择立即退出来退出。
  2. 启动应用程序时 Outlook 已在运行,用户关闭或退出正在运行的资源管理器。
  3. 启动应用程序时 Outlook 未运行,因此以“隐藏”状态启动,但随后用户通过运行可执行文件或从系统托盘图标的上下文菜单中选择打开 Outlook启动了 Outlook 应用程序。然后用户关闭或退出正在运行的资源管理器。

这些中的每一个都对我的程序产生相同的影响:Quit事件被触发,然后我访问 Outlook 对象的一次尝试失败,并显示COMException.

问题

处理此问题的标准或推荐方法是什么?理论上,应用程序退出可以随时异步发生。如果发生异常,我是否需要捕获COMException任何使用 PIA 的操作并从调用到重新启动操作?new Application()这可能很棘手,具体取决于操作的复杂性。

事件处理程序呢?我是否需要跟踪已添加到 Outlook 对象的所有事件处理程序,然后在收到Application.Quit事件时重新添加它们?

用户体验呢?假设用户从系统托盘的上下文菜单中选择了立即退出,然后图标立即重新出现,因为我的应用程序检测到退出并重新初始化了所有内容。我是否应该向用户弹出某种对话框,通知他们我需要 Outlook 才能使我的应用程序正常运行?

在系统关闭的情况下怎么办?大概我会在收到来自 Outlook的SystemEvents.SessionEnding事件之前收到一个事件。Application.Quit这是有保证的,还是我应该在恢复通信之前等待一段时间,看看系统是否正在停机?是否有其他方法可以检测我们是否处于会话结束状态?

为多方面的问题道歉。如果有文章已经解决了这个主题,欢迎提供阅读材料的链接。经过大量搜索,我还没有找到一个。

0 投票
1 回答
72 浏览

outlook - 有没有办法唯一标识附加到 Outlook ContactItem 的图片?

据我了解,Outlook 联系人的“头像”图像作为Attachment对象存储在Attachments集合 ( ref ) 中。

现在假设,作为一个例子,我想在用户的 Outlook 联系人更改时更新我自己的(单独的)联系人数据库,所以我PropertyChangeContactItem. 有什么方法可以确定附加到 a 的图片是否ContactItem已更改,或者我是否需要SaveAsFile()ContactPicture.jpg Attachment每次收到更改通知时致电,只是在它可能已更新的情况下?