Creedence Sergey
|
опубликован 07-02-2002 21:43 MSK
Я считаю, что вместо всяких лишних OCXов, если возможно, лучше использовать что-то другое, т.к. на работу с OCX (через IDispath) тратится дофига времени (в книге по C++ вычитал...), поэтому лучше воспользоваться функцией GetVersionEx. Пример кода: Public Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type Private Const VER_PLATFORM_WIN32_NT = 2 Public Const VER_PLATFORM_WIN32_WINDOWS = 1 Public Declare Function GetVersionEx Lib "Kernel32.dll" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As LongPrivate Function IsWinNT() As Boolean Dim Ver As OSVERSIONINFO Ver.dwOSVersionInfoSize = Len(Ver) Call GetVersionEx(Ver) IsWinNT = (Ver.dwPlatformId = VER_PLATFORM_WIN32_NT) End Function Это код прямо из моего модулька проги, которая не работает под Win2000 (напрямую обращается к портам). А про определение конкретной версии Windows - надо проверить поля dwMajorVersion, dwMinorVersion, dwBuildNumber, а для ServicePack (NT/2k) или "Edition" (Win98) - полем szCSDVersion. Например, для Win98SE версия будет: 4.10.2222 A. и т.д. Да, наспамил, конечно много, но ведь пытался помочь... |