Я хотел бы определить, работает ли моя программа на версии Windows Server. По-видимому, System.Environment
не содержит информации о том, что Windows является версией сервера (такой информации нет в OS version object).Определение, запущена ли программа на Windows Server
Я знаю, что могу использовать SystemInformation.TerminalServerSession
, чтобы проверить, работает ли моя программа на удаленном рабочем столе (см. Также this question), но это также будет правдой, если пользователь просто удастся получить доступ к простой клиентской машине Windows.
Итак, есть ли способ определить, выполняется ли код на сервере или на клиентской машине? Я не против использования P/Invoke при необходимости.
Примечание: я не хочу искать строку в названии продукта, так как это может не работать в некоторых системах из-за локализации.
Если ник дал вам ответ, который вы использовали для получения необходимой вам информации, вы должны принять этот ответ вместо своего (информация здесь должна быть отредактирована в вашем вопросе). –
Ну, Ник не предоставил решение IsOS. Поэтому было более полезно, чтобы другие читатели отмечали мой собственный ответ в качестве принятого ответа. Я зачислил Нику с голосованием. –
Это хороший ответ, спасибо за помощь. Также я всегда использую очень хороший сайт, когда мне приходится вызывать внешние методы: http://www.pinvoke.net/ Вот метод IsOS: http://www.pinvoke.net/default.aspx/shlwapi/IsOS .html – Major