【问题标题】:Enabling PowerPoint VSTO add-in by default默认启用 PowerPoint VSTO 加载项
【发布时间】:2010-12-22 06:00:59
【问题描述】:

当我安装基于 VSTO 的 PowerPoint 插件时,它总是显示在“已禁用”部分,并且每次我打开 PowerPoint 时 - 我都必须手动启用它。

如何以编程方式更改此行为,以便始终默认启用插件。

【问题讨论】:

    标签: c# .net vsto powerpoint


    【解决方案1】:

    当您将 Office (VSTO) 插件设置为启用(在 Office 中)时,它会更改注册表项:

    HKLM\SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName "LoadBehavior"
    

    LoadBehavior 值必须设置为 3 才能加载(即启用)(2 表示禁用)

    Office 程序通常只会在出现问题时将此 LoadBehavior 设置改回 2(例如,您的 Startup 事件代码中的异常、未能找到程序集等) 所以你需要弄清楚发生了什么(调试你的启动或做一些日志记录)

    无论如何,要以编程方式进行设置,您需要编写一些代码来更改此注册表设置。

    我在安装程序中使用 NSIS,例如:

    StrCpy $0 "SOFTWARE\Microsoft\Office\PowerPoint\Addins\YourAssemblyName"
    
    WriteRegStr HKLM $0 "Description" "Product Name"
    WriteRegStr HKLM $0 "FriendlyName" "Product Name"
    WriteRegDWORD HKLM $0 "LoadBehavior" 3
    WriteRegStr HKLM $0 "Manifest" "$INSTDIR\YourAssemblyName.vsto|vstolocal"
    

    【讨论】:

    • 之前的启动代码有问题,崩溃了。但即使经过多次迭代(看似有效的代码),它也不会自动加载。这可能与第一次崩溃有关吗?
    • 查看了注册表设置,一旦我启动 powerpoint 实例,它似乎从 3 更改为 2。然后,如果我手动启用它,pluing 工作正常。这里可能存在哪些潜在问题?我所做的只是在启动代码中创建一个目录和一个文件
    • 使用 try catch 块,我可以在我的代码中找到一些有趣的东西,并且我的加载项默认加载。很酷。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    相关资源
    最近更新 更多