【问题标题】:Is it possible to conditionally use XPManifest at runtime?是否可以在运行时有条件地使用 XPManifest?
【发布时间】:2011-11-23 12:13:19
【问题描述】:

我试图让用户选择是否要使用主题样式。 是否可以动态“加载” XPManifest?

如果用户接受主题样式,则使用清单,否则使用经典主题。 在带有样式选择的对话框关闭后程序启动时,我想做类似的事情:

if UserWantsThemedStyle then
  LoadManifestSomehow
else
  UseClassicStyle;

甚至可以在运行时进行吗?

谢谢

【问题讨论】:

标签: delphi runtime conditional manifest


【解决方案1】:

是的,您可以这样做。您需要使用activation context API,它允许您在运行时激活不同的清单。我已使用它在 Excel 加载项中启用主题。

【讨论】:

  • 谢谢。看起来像我正在寻找的东西。我找到了your answer,但我不知道如何使用它。我使用的是 Delphi 2009,所以我必须稍微修改你的代码才能编译。我会将其粘贴到我的问题中。
  • 我认为该问题中的代码在 D6 中很好。我写的时候用的是D6。您可能需要将清单放入单独的 DLL 而不是您的 exe 中,以避免它被加载程序拾取和应用。
  • 是的,我现在看到了。所以这就是我的问题。所以如果我把它放到一个 dll 中并加载这个 dll 那么我让它工作吗?
  • 一种方法是将激活上下文代码放入 DLL 并让加载该 DLL 的行为执行激活。或者您可以只拥有一个包含清单的纯资源 DLL 并从 exe 激活它。查看我的代码,我不明白为什么我同时设置了 lp​​Source 和 hModule。这似乎没有必要。
  • 其实再看激活上下文文档,似乎可以只提供文件而不是绑定资源。这对你来说可能更容易,当然是在测试时。
猜你喜欢
  • 2021-12-22
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多