检测服务器显示分辨率

时间:2011-03-15 22:26:51

标签: c# .net asp.net iis windows-server-2008-r2

在Windows Server 2008上我可以使用Web服务或者我可以从C#应用程序查询显示属性(分辨率(高度和宽度))。 C#应用程序无法在服务器上运行,因此我无法从应用程序本身检测到它。

除了帮助解释原因外:

我将有一个名为“display”的用户,将在显示网站(在服务器上)登录,我希望能够从桌面应用程序检查显示,以便用户知道设计模板的分辨率对于。分辨率将从不同的显示改变,因此它不能是设定值。

2 个答案:

答案 0 :(得分:1)

我建议只使用WMI查询服务器。检查第三个例子:

http://msdn.microsoft.com/en-us/library/aa394591%28v=vs.85%29.aspx

答案 1 :(得分:0)

我的代码

这是我用来解决问题的代码:

System.Management.ConnectionOptions oConnectionOptions = new System.Management.ConnectionOptions();
{
    oConnectionOptions.Username = ServerManagement.GetServerUser();
    oConnectionOptions.Password = ServerManagement.GetServerPassword();
}
ManagementPath oPath = new ManagementPath("\\\\" + ServerManagement.GetServerAddress() + "\\root\\cimv2");
ManagementScope oScope = new ManagementScope(oPath, oConnectionOptions);
try
{
    oScope.Connect();
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor");
    ManagementObjectCollection obj = searcher.Get();
    foreach (ManagementObject service in obj)
    {
        this.DisplayHeight = Convert.ToInt16(service["ScreenHeight"]);
        this.DisplayWidth = Convert.ToInt16(service["ScreenWidth"]);
    }
}
catch (Exception)
{
    MessageBox.Show("Cannot connect to server, please try again later.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}