首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#.net字外接程序

c#.net字外接程序
EN

Stack Overflow用户
提问于 2015-12-02 07:01:23
回答 1查看 276关注 0票数 1

我正在为Office-2013在C#.net中开发一个外接程序,它在用户试图导出或共享文档时显示弹出消息。我见过word PIA有,但共享和导出没有这样的事件。

因此,我的查询是,如果用户试图共享或导出文档,我是否可以将自己的事件与Word外接程序一起使用,这将显示弹出。

如果是,可能采取什么步骤?

外接程序的基本目的是充当RMS(Right Management System),这样,如果用户试图保存不受限制访问模板保护的文档,那么它应该在用户保存文档之前自动将默认模板附加到文档上。Word的对象模型也没有多大帮助,因此想知道使用C#.net for Office-2013开发这样一个外接程序应该是什么过程。

EN

回答 1

Stack Overflow用户

发布于 2015-12-02 15:46:07

您可以通过在条带XML中覆盖适当的命令来做到这一点。

您需要向XML中添加一个<commands>节点,并为相关的Word命令包括子元素,如下所示:

代码语言:javascript
复制
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
   onLoad="OnLoad" > 
   <commands> 
     <command idMso="FileSave" onAction="mySave" /> 
   </commands> 
   <ribbon startFromScratch="false"> 
     <tabs> 
       <tab id="tab1" label="Repurpose Command Demo" > 
         <group id="group1" label="Demo Group"> 
           <toggleButton id="togglebutton1"  
             imageMso="AcceptInvitation"  
             size="large"  
             label="Alter Built-ins"  
             onAction="changeRepurpose" /> 
         </group> 
       </tab> 
     </tabs> 
   </ribbon> 
</customUI>

然后,您必须添加一个相应的回调,每当用户试图执行有关命令时,该回调就会执行:

代码语言:javascript
复制
public void mySave(IRibbonControl control, bool cancelDefault)
{
    If (repurposing)
    {
        MessageBox.Show("The Save button has been temporarily repurposed.");
        cancelDefault = False;
    }
    else
    {
        cancelDefault = False;
    }
}

MSDN在这里有一个完整的示例:Office Fluent Ribbon上的临时重定向命令

在您的示例中,命令ids可能是FileSaveAsPdfOrXpsShareWithPeople (或类似的)。您可以在这里找到一个包含所有Office的Excel文档:idMso表

更新

编辑完原始问题后,您可能需要为Office设置一个RMS服务器,并定义适当的权限策略模板。要开始学习,您可以在这里阅读这个主题:2013年办公室的计划信息权利管理

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34036717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档