我可以在 Windows XP 上使用 Windows 功能区 UI 吗?如何?

发布于 2024-11-03 02:09:49 字数 1138 浏览 1 评论 0原文

我通过阅读 Arik Poznanski 的博客 Windows Ribbon UI Framework 是 Windows 中的 COM 对象7,WindowsRibbon 包装器 只是一个 .NET围绕它进行饰面,以允许在 Windows 窗体应用程序中使用功能区 UI。

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

Windows Ribbon HEllo World

它正在运行我的开发机是Windows7。


问题:

  • 这个“hello, world”应用程序可以在 Vista 上运行吗? XP?我是否需要在这些机器上下载一些东西才能实现这一点?

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

谢谢


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

Windows 7、Windows Vista SP2 和 Windows Vista 平台更新

我如何在 MSI 中检查这些内容?

I understand from reading Arik Poznanski's blog that the Windows Ribbon UI Framework is a COM object in Windows 7, and the WindowsRibbon wrapper is just a .NET veneer around that, to allow the Ribbon UI to be used in Windows Forms applications.

I've been successful in implementing a Hello World Windows Form app that employs this wrapper:

Windows Ribbon HEllo World

It is running on my development machine, which is Windows7.


Questions:

  • Will this "hello, world" application run on Vista? XP? Do I need to download something onto those machines in order to make that happen?

  • Is there a way to specify the Windows Ribbon UI components as a pre-requisite, in an MSI installer?

Thanks


Browsing around I found the documentation for UIRibbon.dll, which is the DLL on Windows7 that delivers the Ribbon UI. It lists these as minimum supported clients:

Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista

how would I check for that in an MSI ?

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

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

发布评论

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

评论(2

梦途 2024-11-10 02:09:50

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

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

Best I can tell, you are taking on a dependency that won't work on Windows XP. This doesn't seem to be a redistributable component ( although I will admit hacking on a VM trying to see if I could transplant it into an XP machine ).

Since it isn't redistributable, I'm not sure there's any point in doing a search in MSI as you can just rely on checking the OS Major version ( Win7 ).

冰雪之触 2024-11-10 02:09:50

您可以随心所欲地使用功能区 UI(遵守功能区许可协议; 这基本上要求你不要制作半途而废的版本)。

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


如果您想检查 Windows Ribbon Framework 在客户端计算机上是否可用,请尝试创建一个 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;
}

You are free to use a Ribbon UI wherever you like (subject to the Ribbon license agreement; which basically asks that you don't make a half-assed version).

There are companies that created their own Ribbon controls. Some of those implementations (i.e. Microsoft's Windows Ribbon Framework) only work on Windows 7 or Windows Vista (with a download installed first).


If you want to check that the Windows Ribbon Framework is available on the client machine, try to create a UIRibbonFramework object:

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