3

通过阅读Arik Poznanski 的博客,我了解到Windows 功能区 UI 框架是 Windows 7 中的一个 COM 对象,而WindowsRibbon 包装器只是围绕它的一个 .NET 单板,以允许在 Windows 窗体应用程序中使用功能区 UI。

我已经成功地实现了一个使用这个包装器的 Hello World Windows 窗体应用程序:

Windows 功能区你好世界

它在我的开发机器上运行,即 Windows7。


问题:

  • 这个“hello, world”应用程序会在 Vista 上运行吗?经验?我是否需要在这些机器上下载一些东西才能做到这一点?

  • 有没有办法在 MSI 安装程序中将 Windows 功能区 UI 组件指定为先决条件?

谢谢


浏览我发现UIRibbon.dll 的文档,它是 Windows7 上提供功能区 UI 的 DLL。它将这些列为最低支持的客户端:

Windows 7、带有 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新

我将如何在 MSI 中检查?

4

2 回答 2

1

尽我所能,您正在承担在 Windows XP 上不起作用的依赖项。这似乎不是一个可再分发的组件(尽管我承认在 VM 上进行了黑客攻击,试图查看是否可以将其移植到 XP 机器中)。

由于它不可再分发,因此我不确定在 MSI 中进行搜索是否有任何意义,因为您只能依靠检查 OS 主要版本( Win7 )。

于 2011-04-25T02:53:23.837 回答
1

您可以在任何您喜欢的地方自由使用功能区 UI(受功能区许可协议的约束;基本上要求您不要制作半成品版本)。

有些公司创建了自己的功能区控件。其中一些实现(即 Microsoft 的 Windows 功能区框架)仅适用于 Windows 7 或 Windows Vista(先安装下载)。


如果要检查客户端计算机上的 Windows 功能区框架是否可用,请尝试创建一个UIRibbonFramework对象:

IUIFramework* pFramework = NULL;
HRESULT hr = ::CoCreateInstance(
            CLSID_UIRibbonFramework, 
            NULL,
            CLSCTX_INPROC_SERVER, 
            IID_PPV_ARGS(&pFramework));
if (FAILED(hr))
{
  //Ribbon not available - fallback to something else
  return;
}
于 2011-06-18T01:12:17.230 回答