![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неверное определение версии Windows [WinXP]
Psychedelic © (2006-08-15 20:50:00)Функция GetVersionEx . На WinXP PRO возвращает минор - 0, хотя должно быть - 1 . Другие параметры правильные.. В чем дело?!
Psychedelic (2006-08-17 19:04:00) [1]Пожалуйста. Но причина не в коде....
function WinVer : TWindowsVersion;
{* Returns Windows version. }
var OVI: TOsVersionInfo;
begin
if SaveWinVer <> $FF then Result := TWindowsVersion( SaveWinVer )
else
begin
OVI.dwOSVersionInfoSize := Sizeof( OVI );
GetVersionEx( OVI );
with OVI do
if dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
Result := wvNT;
if dwMajorVersion >= 6 then
Result := wvLongHorn
else begin
if dwMajorVersion >= 5 then
if dwMinorVersion >=1 then
Result := wvXP
else
Result := wvY2K;
end;
end
else
if dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
begin
Result := wv95;
if (dwMajorVersion > 4) or (dwMajorVersion = 4)
and (dwMinorVersion >= 10) then
Result := wv98;
end
else
Result := wv31; // Windows 3.1 (WIN32s)
SaveWinVer := Ord( Result );
end;
end;
begin...end (2006-08-17 17:53:00) [2]> Psychedelic © (17.08.06 17:20) [4]
> Это код из KOL - процедура GetWINDOWSVer.
Я извиняюсь, но нельзя ли этот код выложить здесь?
Psychedelic (2006-08-17 17:20:00) [3]ДА. Это код из KOL - процедура GetWINDOWSVer. На всех компах нормально, только на одном такая ерунда...
begin...end (2006-08-15 21:58:00) [4]> Psychedelic © (15.08.06 21:55) [2]
А... Всё понятно, значит... Ну, тады ладно...
Поле OSVERSIONINFO.dwOSVersionInfoSize перед вызовом GetVersionEx проинициализировано?
Psychedelic (2006-08-15 21:55:00) [5]Тут и приводить ничего не надо, и так все понятно... На одном компьютере все ок. НА компьютере у друга такая ерунда.
begin...end (2006-08-15 20:55:00) [6]Приведите конкретный код.