微软自动化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软自动化相关的知识,希望对你有一定的参考价值。

我们有一个UWP应用程序,我们希望有以下场景:

  1. 用文档打开它的Microsoft单词
  2. 编辑文件
  3. 关闭文档并将数据提供给您的应用程序。

我们有一个使用下面代码的Silverlight应用程序,可以很好地解决问题。我们可以在UWP中做类似的事情吗?以编程方式打开Word并等待实例关闭。

  private void SetupWordInstance(bool visible = true)
    {
        if (AutomationFactory.IsAvailable)
        {
            _wordApp = null;

            try
            {
                _wordApp = AutomationFactory.CreateObject("Word.Application");
                _wordVersion = _wordApp.Version;
            }
            catch
            {
                try
                {
                    _wordApp = AutomationFactory.CreateObject("Word.Application");
                    _wordVersion = _wordApp.Version;
                }
                catch (Exception)
                {
                    Utils.ShowMessage(Resource.MissingWordApplicationErrorMessage);
                }
            }

            if (_wordApp != null)
            {
                AutomationEvent beforeCloseEvent = AutomationFactory.GetEvent(_wordApp, "DocumentBeforeClose");
                beforeCloseEvent.AddEventHandler(new BeforeCloseAppDelegate(BeforeCloseApp));

                AutomationEvent quitEvent = AutomationFactory.GetEvent(_wordApp, "Quit");
                quitEvent.AddEventHandler(new QuitAppDelegate(QuitApp));

                if (visible)
                {
                    _wordApp.Visible = true;
                    _wordApp.Activate();
                    FocusWordInstance();
                }
            }
        }
        else
        {
            Utils.ShowMessage(Resource.MissingAutomationErrorMessage);
        }
    }
答案

它有可能与微软提供的称为桌面桥的技术相对应。这是一个解释。很容易,它是提取UWP中不可用的Windows桌面功能,并将其与应用程序一起提供。

Docs/Windows/UWP/Develop/Porting apps to Windows 10/Desktop Bridge

以下是使用Excel时的示例。

Desktop app bridge to UWP Samples

UWP calling Office Interop APIs

Windows Application Packaging Project Samples

Excel.Interop

由于Word API的定义如下,似乎可以如上所述使用它。

Microsoft.​Office.​Interop.​Word Namespace

以上是关于微软自动化的主要内容,如果未能解决你的问题,请参考以下文章

postman 自动生成 curl 代码片段

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

VSCode 配置 用户自定义代码片段 自定义自动代码补充

vscode自定义问题

从零开始配置vim(27)——代码片段

[AndroidStudio]_[初级]_[配置自动完成的代码片段]