3

我从阅读Arik Poznanski's blog了解到,Windows Ribbon UI Framework是Windows 7中的COM对象,WindowsRibbon wrapper仅仅是一个.NET单板,可以在Windows窗体应用程序中使用功能区UI。我可以在Windows XP上使用Windows功能区UI吗?怎么样?

我已经成功地执行一个Hello World Windows窗体应用程序,采用此包装:

Windows Ribbon HEllo World

这是我的机器,这是Windows7的运行。


问题:

  • 请问这个 “你好,世界” 应用程序在Vista上运行? XP?我是否需要将某些东西下载到这些机器上才能实现这一目标?

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

感谢


浏览各地,我发现the documentation for UIRibbon.dll,这是它提供的功能区UI上的Windows7的DLL。它列出了这些作为最低支持的客户端:

的Windows 7,Windows Vista带有SP2和平台Windows Vista更新

我怎么会检查,在一个MSI?

+0

有关XP的Ribbon UI,检查出的http:// WWW .bcgsoft.com/ – saschabeaumont 2011-04-26 22:47:45

回答

1

最好我可以告诉你,你正在承担一个在Windows XP上无法工作的依赖。这似乎不是一个可再发行的组件(尽管我会承认黑客试图查看是否可以将它移植到XP机器上)。

因为它不是可再分发的,所以我不确定在MSI中进行搜索有任何意义,因为您只能依靠检查操作系统主要版本(Win7)。

+0

感谢您的回复。好的,在WinXP上不可用。 Vista怎么样?该文档页面表示它可以在Vista上运行“平台更新”。有关于此的任何想法?我将如何检查?另外 - 我很好奇。你用XP做了一些黑客攻击。当您在XP上运行应用程序时发生什么,取决于UIribbon.dll?你试过了吗? – Cheeso 2011-04-25 03:36:02

+0

我只是尽力在依赖中查看它,并试图查看是否可以获得CLSID的注册。如果您查看该CodePlex项目的源代码,则会发现具有CLSID guid的类文件。对于MSI,您可以编写一个AppSearch/RegLocator组合来搜索注册表中的CLSID。 – 2011-04-25 12:16:01

+1

BTW,KB971644是Vista的平台更新,但它只能通过WSUS和Windows Update获得。但是,它有一个可下载的KB960362(http://support.microsoft.com/kb/960362/)子分支(适用于vista/2008/x86/x64的4个版本) – 2011-04-25 12:31:29

1

您可以随意使用功能区用户界面(根据the Ribbon license agreement;基本上会要求您不要制作半版本)。

有些公司已经创建了自己的Ribbon控件。其中一些实现(即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; 
} 
相关问题