Wix:如何从客户端属性中获取分辨率屏幕?

Wix : How to get the resolution screen from Client properties?

我有这些属性:

Property(S) ScreenX = 1024
Property(S) ScreenY = 768
Property(C) ScreenX = 1920
Property(C) ScreenY = 1080

例如,如果我使用 ScreenX 属性,我只获得 属性(S) 的 ScreenX 值。

我想获取 属性(C) -> 客户端的 ScreenX 值。

可能吗?

ScreenX property and ScreenY propertySDK中的doco很少。据推测,MSFT 认为没有什么可说的。从日志中可以看出,客户端“(c)”msiexec 进程的分辨率为 1920x1080,但服务器端“(s)”的分辨率为 1024x768。这似乎开始发生在 Vista 中,但 MSDN doco 再次没有解决它。然后是多显示器的场景,完全表达不出来

Some people 采用 ScreenX/Y 并将其分配给安全的自定义 public 属性,然后在执行序列(服务器端)期间使用它。这在静默安装期间不起作用。我想自定义操作可以查询 API(可能是 wmi class)以获取有关系统中存在的显示适配器的更多信息。

不过我的问题是:何必呢?

分辨率检查最好在应用程序中完成,因为分辨率可以在安装完成后更改,而且无论如何在应用程序代码中更容易完成。