默认启用 PowerPoint VSTO 加载项

发布于 2024-10-08 17:58:10 字数 116 浏览 0 评论 0原文

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

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

When I install my VSTO-based PowerPoint plugin, it always shows up in the 'disabled' section and everytime I open PowerPoint - I have to manually enable it.

How do I programmatically change this behaviour such that plugin is always enabled by default.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静若繁花 2024-10-15 17:58:10

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

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

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

Office 程序通常仅更改此 LoadBehavior当出现问题时设置回 2(例如启动事件代码中出现异常、找不到程序集等)
因此,您需要弄清楚发生了什么(调试启动或进行一些日志记录)。

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

我使用 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"

When you set an Office (VSTO) addin to be enabled (in Office), it changes the registry key:

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

The LoadBehavior value must be set to 3 to load (ie enabled) (2 is for disabled)

Office programs normally only change this LoadBehavior setting back to 2 when something goes wrong (eg exception in your Startup event code, failed to find an assembly etc)
So you need to figure out what's happening (debug your Startup or do some logging)

In any case, to programatically set this, you'll need to write some code to change this registry setting.

I do it in an installer, using NSIS, for example:

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"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文