【发布时间】:2022-01-26 01:51:43
【问题描述】:
我的库应该有不同的行为,具体取决于应用平台。据我所知,我可以使用this code 确定该应用程序是 UWP 应用程序。但即使对于 WinUI3 Win32 应用程序,它也会返回 true。
有什么方法可以确定该应用程序是 WinUI3 Win32 应用程序并且可以调用 AppContainer 沙箱之外的任何 API?
【问题讨论】:
-
你想做的事情被沙箱阻止了——只要试试看它是否成功,或者它是否失败并显示 ERROR_ACCESS_DENIED。
-
@RaymondChen 应该有更优雅的方式
-
了解 X 是否可行的优雅方法是尝试 X 并查看它是否有效。如果你说“如果 Y 是真的,那么我会假设我可以对 X”,那么当 X 和 Y 之间的关系发生变化时,你就会遇到问题。如果沙盒中可以做什么和不可以做什么的规则发生变化(并且它们确实发生了变化),那么您的假设可能不再有效。如果您分享有关您要调用的 API 的更多详细信息,也许我们可以想出有效的方法来检测对它的支持。
-
根据您要完成的工作,优雅的方法可能是针对多个框架,在您的代码中使用预处理器符号并为
uap和net*框架分发单独的程序集。 -
@mm8 我的库用于设置代理。对于 win32 应用程序,我想自动设置系统范围的代理,但对于 UWP 应用程序,由于安全限制,这是不可能的。所以我需要一个帮手,。可以确定当前平台