|
|
|
новичок
      
участник
Last Login: 03.03.2000 3:47
Сообщ.: 6,
Visits: 67
|
|
Народ!
Может кто подсказать, как в Windows NT определить Server или Workstation установлена?
Все мне известные функции типа GetSystemInfo и прочие возвращают значения типа номер сборки, номер версии и Service Pack.
|
|
|
|
|
Supreme 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)
|
|
|
|
|
новичок
      
участник
Last Login: 03.03.2000 3:47
Сообщ.: 6,
Visits: 67
|
|
Все это конечно хорошо, спасибо большое. Но есть пара замечаний. А именно поскольку нужно проверять значение реестра, то это не совсем корректно, поскольку значения реестра легко поменять в ручную.
Гораздо корректнее решить эту проблему именно посредством API функций или еще чего-то подобного.
|
|
|
|
|
Supreme 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 НЕТ!
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
P.S.
Кстати, использование реестра часто может быстро заменить большо-о-ой кусок исходного кода и его использование оказывается намного быстрее и продуктивнее. Конечно, значение ProductType легко поменять вручную с "WINNT" на "SERVERNT", но мы все хорошо знаем, что такое Windows и не исключено, что после этой экзекуции ваша старая добрая workstation вдруг станет крутым и навороченным SERVERNT :)
|
|
|
|
|
новичок
      
участник
Last Login: 03.03.2000 3:47
Сообщ.: 6,
Visits: 67
|
|
Хм...
Попробовал я ручками поменять значения в реестре...
Сначала система мне сказала, что я НЕ ТО делаю, а после перезагрузки ВСЕ равно там стоит WinNT...
То есть, что-то все таки есть, что отслеживает данный параметр.
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
Вот видишь...
Тем более, что такой же пример (с реестром) я нашел в MSDN.
|
|
|
|