首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用COMAddIn实现Excel的延迟加载

用COMAddIn实现Excel的延迟加载
EN

Stack Overflow用户
提问于 2013-12-02 09:40:53
回答 1查看 100关注 0票数 0

我有一个问题要比这里活跃的社区更出色。

我试图拦截Excel工作簿打开事件。情况如下:

当用户双击windows资源管理器中的工作簿时,在Excel中打开工作簿之前,如果用户希望打开工作簿或取消打开的操作,我希望向用户显示一个对话框。如果用户单击“是”打开工作簿,则工作簿将加载到Excel中,否则Excel窗口将为空。

此外,我想在工作簿名称对用户实际可见之前捕获它。

根据我的研究,我发现在与.xls应用程序相关联的情况下,Excel获取文件名并将其传递给DDE。DDE加载文件和工作簿之间的图片实际上是显示出来的,我不太清楚。在DDE加载和工作簿显示的事件之间有任何方式拦截吗?

所以我的问题是:

  1. 我们能否延迟加载Excel,并在两者之间注入一些其他程序,以便在工作簿的名称对用户实际可见之前就可以捕获它。
  2. 有可能通过COM AddIn吗?

PS:人们可能会说这是一个重复的问题。但事实并非如此。

在这方面有什么帮助将是非常感谢的吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-06 00:58:28

代码语言:javascript
运行
复制
    this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen);

    void ThisAddIn_WorkbookNewWorkBook(Excel.Workbook Wb)
    {
        var result = MessageBox.Show("message", "caption",
                             MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question);

        if (result == DialogResult.No)
            Wb.Close();
        //write here the code   
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20325049

复制
相关文章

相似问题

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