在C#中检索操作系统

3

除了Environment.OsVersion,是否有其他属性可用于检索C#中的操作系统,因为在Mac OS的情况下,该属性无法确定?


这是一个asp.net网站吗? - theedam
@theedam 因为他/她标记了mono,所以我不这么认为。它可能是在MacOS上使用mono运行的应用程序。 - Christos
你在使用Mono,是吗? - Markus
@huMptyduMpty 我认为任何答案都不能在MacOS上运行。 - oleksii
@huMptyduMpty 我询问时它不是单声道 =) 我想是 Markus 添加了那个标签。 - theedam
显示剩余3条评论
1个回答

5
根据Mono的Wiki,您可以像这样做(示例代码如下):

你可以这样做(根据Mono的Wiki

string msg1 = "This is a Windows operating system.";
string msg2 = "This is a Unix operating system.";
string msg3 = "This is a OSX operating system.";
string msg4 = "ERROR: This platform identifier is invalid.";
OperatingSystem os = Environment.OSVersion;
PlatformID pid = os.Platform;
switch (pid) 
{
    case PlatformID.Win32NT:
    case PlatformID.Win32S:
    case PlatformID.Win32Windows:
    case PlatformID.WinCE:
        Console.WriteLine(msg1);
     break;
    case PlatformID.Unix:
        Console.WriteLine(msg2);
     break;
    case PlatformID.MacOSX:
        Console.WriteLine(msg3);
     break;
    default:
        Console.WriteLine(msg4);
     break;
}

如果您正在使用ASP.NET,您可以使用JavaScript来检测操作系统。
var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
document.write('Your OS: '+OSName);

但我特别想要Mac OS,因为任务是在页面中显示一个警告消息,以防Mac OS。 - user3512003
抱歉,但如果您查看Mono Wiki,您会发现只有一种选择来检测MAC OS系统... - Tinwor
3
这就是Tinwor给你的答案。你还有其他问题吗?你最初提出的问题已经被清楚地回答了。 - simon at rcl
当我使用这些语句时,它在“navigator”中显示错误。那是一个用户定义的变量还是一些预定义的属性? - user3512003
@user3512003 这是一个 JavaScript 属性。 - Tinwor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接