我正在创建一个 Outlook 插件来创建新约会,如下所示:
Outlook.AppointmentItem oAppointment =
(Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
oAppointment.Subject = subject;
oAppointment.Body = description;
oAppointment.Start = startDate;
oAppointment.End = endDate;
oAppointment.Save();
Run Code Online (Sandbox Code Playgroud)
现在,我想向这些约会添加一些自定义信息,以便应用程序知道加载项创建了哪些约会。我可以将该信息存储在 AppointmentItem 中,还是必须构建某种单独的数据结构来将约会全局 ID 映射到自定义信息?
谢谢。
我正在开发一个 Outlook 加载项,该加载项将表单区域添加到 IPM.Appointment 消息类。当显示该区域时,它首先会向 AppointmentItem 添加一些属性。
Outlook.AppointmentItem appItem;
private void FormRegion_FormRegionShowing(object sender, System.EventArgs e)
{
try
{
appItem = (Outlook.AppointmentItem)this.OutlookItem;
appItem.ItemProperties.Add("CustomProperty", Outlook.OlUserPropertyType.olText);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
这在我的日历上运行良好,但如果我尝试将插件与我具有编辑者或所有者访问权限的委托日历一起使用,则会引发以下异常:
System.UnauthorizedAccessException: You don't have appropriate permission to perform this operation.
at Microsoft.Office.Interop.Outlook.Itemproperties.Add(String Name, OlUserPropertType Type, ObjectAddToFolderFields, Object DisplayFormat)
at ThisAddin.FormRegion.FormRegion_FormRegionShowing(Ovject sender,EventArgs e)
Run Code Online (Sandbox Code Playgroud)
感谢任何和所有的帮助!
我正在使用 NetOffice 库开发 Outlook 加载项。这是一次很好的体验,但最后我更换了驱动器,重新安装了 Windows、Office 等。现在我的加载项无法运行,在 Outlook 选项的“COM 加载项”中我看到:
Load Behavior: Not loaded. A runtime error occurred during the loading of the COM Add-in
这个问题甚至在 NetOffice 的简单示例中也存在,即该项目NetOffice Tools - Simple,它基本上不执行任何操作。
我将添加的构造函数放入日志记录代码(到文件)中,但它没有运行,因此即使构造函数也没有被命中。
有什么提示如何解决它吗?
编辑:使用 AddInSpy 我发现加载项状态为:
Add-in DLL path is not found.
但不知道如何继续处理此信息。
我开发了一个 Outlook 插件,必须打开或关闭。
为此,我声明了一个静态变量,如下所示,
ThisAddIn.cs
public static bool isAddInOn = false;
Run Code Online (Sandbox Code Playgroud)
RibbonButton.cs
private void btnRibbon_Click(object sender, RibbonControlEventArgs e)
{
if (ThisAddIn.isAddInOn )
{
ThisAddIn.isAddInOn = false;
btnRibbon.Label = "Disabled";
}
else
{
ThisAddIn.isAddInOn = true;
btnRibbon.Label = "Enabled";
}
}
Run Code Online (Sandbox Code Playgroud)
这是工作。但是当我关闭 Outlook 并再次打开它时,静态变量会再次重置。这意味着当我默认打开 Outlook 时,我的加载项处于禁用状态。
我只是想将该值存储在某个地方。这样我就可以在 Outlook 重新打开时检查该值。
设想:
1)开放的视野
2)通过单击其徽标(位于功能区中)来启用加载项
3)现在关闭前景
4)当我再次打开outlook时,它必须启用
那么我怎样才能做到这一点呢?
正在创建一个 Outlook 插件来跟踪邮箱中的邮件处理。我正在包装文件夹和项目(向其中添加一些事件)并将它们存储在本地列表中,以避免 GC 在首次执行后清除所有事件。但是,文件夹添加事件仍然只触发一次。不确定是什么问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using OutlookNS = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using System.Net;
using System.Windows.Forms;
namespace OutlookAuditor
{
public partial class ThisAddIn
{
#region private variables
OutlookNS._NameSpace outNS;
OutlookNS.Explorer explorer;
string profileName = string.Empty;
List<SuperMailFolder> wrappedFolders = new List<SuperMailFolder>();
Logger logger = new Logger();
SuperMailFolder folderToWrap;
#endregion
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
try
{
OutlookNS.Application application = this.Application;
//Get the MAPI namespace
outNS = application.GetNamespace("MAPI");
//Get …Run Code Online (Sandbox Code Playgroud) 我附加到Outlook.Explorer.SelectionChange事件.事件处理程序调用程序集,该程序集从Web服务检索某些数据.在调用该程序集后,当SelectionChange发生时,不再调用我的事件处理程序.
有任何想法吗?
这似乎与装配本身有关,而不是它正在做什么.只需从该程序集创建任何类,就会中断我的加载项中的事件.
我在为Outlook编写的VSTO加载项中有以下代码:
savefolder = Regex.Replace(Guid.NewGuid().ToString(), @"[- ]", String.Empty);
savepathfull = string.Format(@"{0}{1}", netloc, savefolder);
DirectoryInfo di = new DirectoryInfo(@savepathfull);
if (!(di.Exists))
Directory.CreateDirectory(@savepathfull);
removedFiles = new List<string>();
for (int d = attachs.Count; d > 0; d--)
{
if (attachs[d].Size > smallAttachment)
{
removedFiles.Add(attachs[d].FileName);
attachs[d].SaveAsFile(savepathfull);
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我尝试保存附件,此时我收到UnauthorizedAccessException.我知道我的测试用户拥有该文件夹的完全权限,但我仍然收到此错误.
想法?
谢谢.
我正在尝试对Outlook 2010中的选定附件执行操作.我在VS2012中创建了一个Outlook VSTO项目.
这是用于在附件功能区上添加按钮的XML:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<contextualTabs>
<tabSet idMso="TabSetAttachments">
<tab idMso="TabAttachments">
<group label="MyGroup" id="MyAttachmentGroup">
<button id="AttachButton"
size="large"
label="Do something"
imageMso="HappyFace"
onAction="DoSomething" />
</group>
</tab>
</tabSet>
</contextualTabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)
这是ThisAddIn.cs中的代码
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new ProcessAttachment(this);
}
Run Code Online (Sandbox Code Playgroud)
这是ProcessAttachment类:
[ComVisible(true)]
public class ProcessAttachment : Office.IRibbonExtensibility
{
private Office.IRibbonUI ribbon;
private ThisAddIn plugin;
public ProcessAttachment(ThisAddIn plugin)
{
this.plugin = plugin;
}
public void Ribbon_Load(Office.IRibbonUI ribbonUI)
{
this.ribbon = ribbonUI;
}
public void DoSomething(Office.IRibbonControl control)
{
var …Run Code Online (Sandbox Code Playgroud) 我想自定义在OUtlook 2010和2013中单击"主页"选项卡时显示的功能区.
问题 -
我绝对不知道从哪里开始.任何链接,文档或示例都会有所帮助.我一直在经历msdn,但它都说自定义功能区,这不符合我的目的.我需要修改现有的功能区.
开发Office 365,Outlook加载项。更改了外接程序图标(基本上只是将旧图标替换为新图标。图标具有相同的名称。)。OWA上的图标显示正常,但在Outlook 2016加载项上仍显示旧图标。
到目前为止的故障排除步骤:
validate-office-addin显示“ manifest.xml”有效。
outlook-addin ×10
c# ×6
vsto ×6
outlook ×5
.net ×2
outlook-2010 ×2
ms-office ×1
netoffice ×1
office365 ×1