2016-12-15 115 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中的示例。

相关问题