2014-04-11 161 views
3

是否有任何其他屬性檢索除了Environment.OsVersion之外的C#中的操作系統,因爲此屬性在Mac OS的情況下不能確定?在c#中檢索操作系統

+0

做這樣的事情這是一個asp.net現場? – theedam

+0

[在C#中獲取操作系統版本/友好名稱](http://stackoverflow.com/questions/6331826/get-os-version-friendly-name-in-c-sharp)?? –

+0

@theedam因爲他/她已經標記了mono,我不這麼認爲。它可能是一個應用程序,使用單聲道在MacOs上運行。 – Christos

回答

5

您可以(根據單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用於檢測OS

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); 
+0

但我特別想Mac OS只是因爲任務是在Mac OS的情況下在頁面中顯示警告消息。 – user3512003

+0

很抱歉,如果您查看單聲道維基,您會發現只有一個選項可用於檢測MAC OS系統... – Tinwor

+3

這正是Tinwor給您的。你還有問題嗎?你最初提出的問題已經得到肯定的回答。 –