首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Word,Excel,PowerPoint检测保存和AutoSave

Word,Excel,PowerPoint检测保存和AutoSave
EN

Stack Overflow用户
提问于 2022-10-24 19:57:20
回答 1查看 13关注 0票数 0

如何检测和区分Office中的AddIn、Word、PowerPoint事件:

icon)

  • auto-save

  • save
  • 用户作出保存(Ctrl+S,软盘
  • 的新文档(第一次保存,另存为)
  • 文档关闭

这三个应用程序都没有AfterSave、AfterAutoSave和AfterUiSave事件。

Word和Excel连DocumentClose事件都没有。

EN

回答 1

Stack Overflow用户

发布于 2022-10-24 19:57:20

我几乎解决了我所有的问题,我想分享我的片段。

支持AfterSave,AfterAutoSave a AfterUiSave表示我在这里找到的单词,并使用了"as is":https://theofficecontext.com/2011/05/05/word-aftersave-event/

对于Word文档,我为DocumentOpen注册如下:((Microsoft.Office.Interop.Word.DocumentEvents2_Event)document).Close += () => Document_Close(document);

变更PowerPoint我上传在这里:https://gist.github.com/VitekBed/fc2a24f67af3cf81784ba98f0bbc183f

对Excel的修改还包含WorkbookClosed的扩展(最初来自https://gist.github.com/jmangelo/301884),上传到这里:https://gist.github.com/VitekBed/a2e1582ab9500e9513b39b85c53a6e89

来自Excel ThisAddIn.cs的示例,ThisAddIn.AppInit()

代码语言:javascript
复制
WorkbookClosedMonitor wcm = new WorkbookClosedMonitor(Application);
wcm.WorkbookClosed += new EventHandler<WorkbookClosedEventArgs>(wcm_WorkbookClosed);

WordSaveHandler wsh = new WordSaveHandler(Application);
wsh.AfterAutoSaveEvent += new WordSaveHandler.AfterSaveDelegate(wsh_AfterAutoSaveEvent);
wsh.AfterSaveEvent += new WordSaveHandler.AfterSaveDelegate(wsh_AfterSaveEvent);
wsh.AfterUiSaveEvent += new WordSaveHandler.AfterSaveDelegate(wsh_AfterUiSaveEvent);

唯一尚未解决的问题是AfetrUiSave for PowerPoint,但它对我来说不是重要的用例。对我来说,是关键,检测自动保存和行为不同的保存和自动保存。

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

https://stackoverflow.com/questions/74186171

复制
相关文章

相似问题

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