Конференция "WinAPI" » Major/Minor OS Version
 
  • harisma © (13.11.09 18:44) [0]
    Для 32 битных систем в дельфе есть 2 метода, чтоб получить информацию о ОС: Win32MajorVersion и Win32MinorVersion. А какие методы существуют для той же цели в x64 OC?
  • ms (13.11.09 19:12) [1]
    Так же, только проверка

      if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then

    советую хапать информацию из реестра, например.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
  • DVM © (13.11.09 20:03) [2]

    > советую хапать информацию из реестра, например.

    А я не советую.


    >  if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then

    Это неверно, т.к. условие выполняется и под x64 системами
  • DVM © (13.11.09 20:04) [3]

    > А какие методы существуют для той же цели в x64 OC?

    методы те же самые.
  • ms (13.11.09 21:56) [4]
    Win32MajorVersion и Win32MinorVersion

    бывает не срабатываю по большенству примеров в рунете!
    либо пашет только на ХР, на висте определяет как ХР.. вот я и говорю, второй вариант - реестр, там более подробная инфа об ОС в полной версией.
  • DVM © (13.11.09 23:19) [5]

    > Win32MajorVersion и Win32MinorVersion
    >
    > бывает не срабатываю по большенству примеров в рунете!

    Вероятно дело то не в этих константах, а в их неправильном применении. Эти константы содержат лишь значения которые возвращает GetVersion().
    Для точного определения версии этих констант недостаточно в ряде случаев, требуется привлечение функций GetVersionEx(), GetProductInfo(), GetNativeSystemInfo(), GetSystemMetrics() и некоторых других.

    Определять версию через реестр MS не рекомендует, т.к. не гарантирует, что содержимое и местоположение ключа в реестре будет неизменным.

    Вот здесь приведена исчерпывающая информация по правильному получению версии, там же готовый модуль http://www.delphidabbler.com/articles?article=23
  • имя (15.11.09 02:59) [6]
    Удалено модератором
  • Anatoly Podgoretsky © (16.11.09 09:21) [7]
    > DVM  (13.11.2009 23:19:05)  [5]

    Исчерпывающая и лостоверная информация только в MSDN
    вот точка входа и далее по ссылкам
    http://msdn.microsoft.com/en-us/library/ms724451(VS.85).aspx
  • DVM © (16.11.09 11:13) [8]

    > Anatoly Podgoretsky ©   (16.11.09 09:21) [7]


    > Исчерпывающая и лостоверная информация только в MSDN

    Это не совсем так. Конечно в MSDN описаны все функции, но не описаны приемы. В MSDN есть лишь один пример определения версии да и то неполный и устаревший.
  • Демо © (16.11.09 11:42) [9]
    Вроде бы на примере расписано...

    http://msdn.microsoft.com/en-us/library/ms724429(VS.85).aspx
  • Дмитрий Белькевич (16.11.09 11:50) [10]
    >либо пашет только на ХР, на висте определяет как ХР.

    Странно. Ни разу не видел. Ну если только совместимость включена. Ну так - на то она и совместимость.
  • DVM © (16.11.09 12:31) [11]

    > Демо ©   (16.11.09 11:42) [9]
    > Вроде бы на примере расписано...
    >
    > http://msdn.microsoft.com/en-us/library/ms724429(VS.85).
    > aspx

    Я о нем и говорил.
    Хотя пример уже обновили смотрю.
  • ms (20.11.09 17:29) [12]
    у меня с реестра берет проблем нет. кому это надо заменять записи. или для какой-то супер безопасности пишите софт.
  • DVM © (20.11.09 19:51) [13]

    > ms   (20.11.09 17:29) [12]
    > у меня с реестра берет проблем нет. кому это надо заменять
    > записи.

    MS сама поменяет и всего делов. Вот раньше говорила MS не надо писать в Program Files, но писать было можно, потом вышла виста и все поняли, что надо было слушать MS.
 
Конференция "WinAPI" » Major/Minor OS Version
Есть новые Нет новых   [134469   +11][b:0][p:0]