2016-12-15 121 views
1

有沒有什麼辦法可以在UWP項目中安裝win32應用程序?(因爲在uwp項目中我無法添加wmi調用和註冊表的參考)。如果是這樣如何實現?獲取已安裝的win32應用程序

回答

1

古典的win32應用程序可以通過讀取註冊表來獲得在設備上安裝的win32應用程序。但在商店應用程序中,簡而言之,它不能。商店應用運行在獨立的沙箱中,無法讀取系統級註冊表。有關爲什麼商店應用不支持訪問註冊表的詳細原因,請參閱this thread

但是,如果您不想將應用程序上傳到Windows Store,則可以嘗試使用Brokered Windows Runtime Components進行側裝Windows Store應用程序。從本質上講,它允許您的UWP應用程序調用託管在另一個進程中的Win32 API,該進程在App容器之外運行。

對於VS2015的斡旋WinRT組件模板,您可以下載here

有關Brokered Windows運行組件的更多詳細信息和示例,請參考this videothis document

+0

有什麼辦法可以在系統中安裝uwp應用程序嗎?我嘗試使用PackageManager類bt它不工作。是否有其他方式?我不想使用powershell。 – Visnu

0

有什麼辦法可以在系統中安裝uwp應用程序嗎?我嘗試使用PackageManager類bt它不工作。是否有其他方式?我不想使用powershell。

爲了獲得安裝的商店應用程序,我測試了PackageManager這一類。它工作得很好,據我所知這是獲得安裝商店應用程序的最佳方式。代碼如下:

var packageManager = new PackageManager(); 
IEnumerable<Windows.ApplicationModel.Package> packages = (IEnumerable<Windows.ApplicationModel.Package>)packageManager.FindPackagesForUser(""); 
var list = packages.ToList(); 

注重的是,這些代碼在運行UWP需要packageManagement限制能力。有關特殊和受限功能的更多細節this。而且你的應用不能上傳到windows商店。

在傳統的Win32項目中使用此代碼只需參考this document中的示例。

相關問題