Vorrei determinare se il mio programma è in esecuzione su una versione di Windows Server. Apparentemente, System.Environment
non contiene informazioni sul fatto che Windows è una versione server (non ci sono tali informazioni nello OS version object).Determinare se il programma è in esecuzione su Windows Server
So che posso usare SystemInformation.TerminalServerSession
per verificare se il mio programma è in esecuzione su un desktop remoto (vedi anche this question), ma questo sarà anche vero se l'utente è semplicemente accedendo una pianura macchina client di Windows in remoto.
Quindi esiste un metodo supportato per determinare se il codice è in esecuzione su un server o su un computer client? Non mi dispiace usare P/Invoke se necessario.
Nota: non desidero cercare la stringa "Server"
nel nome del prodotto, poiché probabilmente non funzionerà su alcuni sistemi a causa della localizzazione.
Se nick ti ha dato la risposta che hai usato per ottenere le informazioni di cui hai bisogno, allora dovresti accettare quella risposta invece della tua (le informazioni qui dovrebbero essere modificate nella tua domanda). –
Bene, Nick non ha fornito la soluzione IsOS. Sembrava quindi più utile per altri lettori segnare la mia risposta come risposta accettata. Ho accreditato Nick con un voto positivo. –
È una buona risposta, grazie per l'aiuto. Inoltre uso sempre un sito molto buono quando devo chiamare metodi esterni: http://www.pinvoke.net/ Ecco il metodo IsOS: http://www.pinvoke.net/default.aspx/shlwapi/IsOS .html – Major