2017-03-09 12 views
0

Ich versuche eine App zu entwickeln, die auf einen COM-Port zugreift. Um einen passenden COM Port zu wählen, wäre es gut das System automatisch zu erkennen. Gibt es eine Möglichkeit, das System (Windoews, Linux oder MAC) als String oder ähnliches zu lesen? Später möchte ich einen virtuellen COM-Port mit der USB-VID oder PID auswählen. Es wäre toll, wenn Sie mir ein oder zwei oder sogar drei ... Ratschläge geben könnten.Systemerkennung (Windows, Mac OS X oder Linux)

Ich bin zur Zeit beginnen mit Mono arbeiten und würde etwas Hilfe freuen;)

thx Thommy

+0

Mögliche Duplikat [So überprüfen Sie die OS-Version zur Laufzeit z.B. Windows oder Linux ohne Verwendung einer bedingten Kompilierungsanweisung] (http://stackoverflow.com/questions/5116977/how-to-check-the-os-version-at-runtime-eg-windows-or-linux-without-using -a-con) – SushiHangover

Antwort

0

Ich habe eine Lösung gefunden und haben ein paar Zeilen Code erstellt:

/// <summary> 
    /// Get Execution Platform/OS 
    ///  return value 
    ///  0: nicht erkannt/Error 
    ///  1: Windows 
    ///  2: MacOSX 
    ///  2: Unix (Linux) 
    /// </summary> 
    static public int DetectingExecutionPlatform() 
    { 
     OperatingSystem os = Environment.OSVersion; 
     PlatformID pid = os.Platform; 
     switch (pid) 
     { 
      case PlatformID.Win32NT: 
      case PlatformID.Win32S: 
      case PlatformID.Win32Windows: 
      case PlatformID.WinCE: 
       return 1; 
      case PlatformID.MacOSX: 
       return 2; 
      case PlatformID.Unix: 
       return 3; 
      default: 
       return 0; 
     } 
    } 

Leider wird OS X (macOS 10.12.3 Sierra) als UNIX angezeigt: |

Es wäre toll, wenn jemand den Code testen und mir das Ergebnis präsentieren könnte. Oder wer weiß, eine Lösung ist auch willkommen;)

thx und cya Thommy