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; 
} 
相關問題