Windows NT (Server или Workstation?)
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Windows NT (Server или Workstation?) Expand / Collapse
Автор
Сообщение
03.03.2000 3:52
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 03.03.2000 3:47
Сообщ.: 6, Visits: 67
Народ!
Может кто подсказать, как в Windows NT определить Server или Workstation установлена?
Все мне известные функции типа GetSystemInfo и прочие возвращают значения типа номер сборки, номер версии и Service Pack.
Сообщ. #92
03.03.2000 4:47
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
Проверяй значение в

\HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet
\Control
\ProductOptions

Возможные значения ProductType

WINNT - Windows NT Workstation
SERVERNT - Windows NT Server (3.5 or later)
LANMANNT - Windows NT Advanced Server (3.1)
Сообщ. #93
03.03.2000 5:44
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 03.03.2000 3:47
Сообщ.: 6, Visits: 67
Все это конечно хорошо, спасибо большое. Но есть пара замечаний. А именно поскольку нужно проверять значение реестра, то это не совсем корректно, поскольку значения реестра легко поменять в ручную.
Гораздо корректнее решить эту проблему именно посредством API функций или еще чего-то подобного.
Сообщ. #94
03.03.2000 6:15
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
Замечание вполне понятно, что тут сказать ;)

Есть функция API - GetVersionEx() и если у тебя Windows 2000, то нет проблем - новая структура OSVERSIONINFOEX содержит в себе элемент wProductType, где

VER_NT_WORKSTATION - Windows 2000 Professional
VER_NT_DOMAIN_CONTROLLER - Windows 2000 domain controller
VER_NT_SERVER - Windows 2000 Server

НO в NT3/4 с помощью GetVersionEx() можно определить только имя и версию платформы - Win3.X, Win9X, WinNT... А разделения на server/workstation НЕТ!
Сообщ. #95
03.03.2000 6:24
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
P.S.

Кстати, использование реестра часто может быстро заменить большо-о-ой кусок исходного кода и его использование оказывается намного быстрее и продуктивнее. Конечно, значение ProductType легко поменять вручную с "WINNT" на "SERVERNT", но мы все хорошо знаем, что такое Windows и не исключено, что после этой экзекуции ваша старая добрая workstation вдруг станет крутым и навороченным SERVERNT :)
Сообщ. #96
07.03.2000 3:39
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 03.03.2000 3:47
Сообщ.: 6, Visits: 67
Хм...
Попробовал я ручками поменять значения в реестре...
Сначала система мне сказала, что я НЕ ТО делаю, а после перезагрузки ВСЕ равно там стоит WinNT...
То есть, что-то все таки есть, что отслеживает данный параметр.
Сообщ. #112
07.03.2000 3:42
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
Вот видишь...

Тем более, что такой же пример (с реестром) я нашел в MSDN.
Сообщ. #113
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Comanche, Alexey Spirin

Время GMT +3:00, Сейчас 11:17