Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Вниз

Как прочитать версию Windows и поместить в Edit?   Найти похожие ветки 

 
Чужой   (2002-04-25 15:43) [0]

Нашел процедурку, а как использовать ее не знаю.
Пожалуйста, помогите.
Что нужно подставить вместо многоточий, чтобы значение параметра VersionNumber было отображено в Edit?


var
R:TRegistry;
No:String;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey("\SOFTWARE\Microsoft\Windows\CurrentVersion", False) {если false то пытается откpыть не создавая}
No:=R.ReadString("VersionNumber");
if No=..... then ...... else ......
end;


 
Johnmen   (2002-04-25 15:51) [1]

После того, как в Edit будет номер версии, отредактируй его и нажми OK - версия обновится !
Я себе так сделал из Win95 -> WinXP ! Сэкономил деньги на сидюке с XP !
:-)))))))))))))))))))))))))))))


 
Игорь Шевченко   (2002-04-25 15:55) [2]

День добрый,

Не надо мучиться с реестром, всю информацию можно получить вызовом GetVersionEx

unit main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TOsVersionInfoExA = packed record
old : TOsVersionInfoA;
wServicePackMajor : Word;
wServicePackMinor : Word;
{
wSuiteMask
A set of bit flags that identify the product suites available on the system. This member can be a combination of the following values. Value Meaning
VER_SUITE_BACKOFFICE Microsoft BackOffice components are installed.
VER_SUITE_BLADE Windows .NET Web Server is installed.
VER_SUITE_DATACENTER Windows 2000 or Windows .NET Datacenter Server is installed.
VER_SUITE_ENTERPRISE Windows 2000 Advanced Server or Windows .NET Enterprise Server is installed.
VER_SUITE_PERSONAL Windows XP Home Edition is installed.
VER_SUITE_SMALLBUSINESS Microsoft Small Business Server is installed.
VER_SUITE_SMALLBUSINESS_RESTRICTED Microsoft Small Business Server is installed with the restrictive client license in force.
VER_SUITE_TERMINAL Terminal Services is installed.
}

wSuiteMask : Word;
{wProductType
Indicates additional information about the system. This member can be one of the following values. Value Meaning
VER_NT_WORKSTATION The system is running Windows NT 4.0 Workstation, Windows 2000 Professional, Windows XP Home Edition, or Windows XP Professional.
VER_NT_DOMAIN_CONTROLLER The system is a domain controller.
VER_NT_SERVER The system is a server.
}

wProductType : Byte;
wReserved : Byte;
end;

TfrmMain = class(TForm)
emSP: TEdit;
emSPMajor: TEdit;
emSPMinor: TEdit;
emProductID: TEdit;
emSuiteMask: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation

{$R *.DFM}

function WhatWindowsIsInstalled : String;
var VerInfo : TOsVersionInfoExA;
begin
FillChar(VerInfo, sizeof(VerInfo), 0);
VerInfo.old.dwOSVersionInfoSize := Sizeof(TOsVersionInfoExA);
if NOT GetVersionExA(VerInfo.old) then begin
VerInfo.old.dwOSVersionInfoSize := Sizeof(TOsVersionInfoA);
GetVersionExA(VerInfo.old);
end;
case VerInfo.old.dwPlatformId of
VER_PLATFORM_WIN32_WINDOWS:
if (Verinfo.old.dwMajorVersion = 4) AND
(Verinfo.old.dwBuildNumber = 950) then
Result := "Windows 95"
else if (Verinfo.old.dwMajorVersion = 4) AND
(Verinfo.old.dwMinorVersion = 10) AND
(Verinfo.old.dwBuildNumber = 1998) then
Result := "Windows 98"
else if (Verinfo.old.dwMinorVersion = 90) then
Result := "Windows Me";
VER_PLATFORM_WIN32_NT:
if Verinfo.old.dwMajorVersion = 3 then
Result := "Windows NT 3.51"
else if Verinfo.old.dwMajorVersion = 4 then
Result := "Windows NT 4.0"
else if Verinfo.old.dwMajorVersion = 5 then
if Verinfo.old.dwMinorVersion = 0 then
Result := "Windows 2000"
else if Verinfo.old.dwMinorVersion = 1 then
Result := "Windows XP";
VER_PLATFORM_WIN32s:
Result := "Win32s";
end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var VerInfo : TOsVersionInfoExA;
begin
FillChar(VerInfo, sizeof(VerInfo), 0);
VerInfo.old.dwOSVersionInfoSize := Sizeof(TOsVersionInfoExA);
if NOT GetVersionExA(VerInfo.old) then begin
VerInfo.old.dwOSVersionInfoSize := Sizeof(TOsVersionInfoA);
GetVersionExA(VerInfo.old);
end;
emSP.Text := StrPas(VerInfo.old.szCSDVersion);
emSPMajor.Text := Format("%d", [VerInfo.wServicePackMajor]);
emSPMinor.Text := Format("%d", [VerInfo.wServicePackMinor]);
emSuiteMask.Text := Format("%.4x", [VerInfo.wSuiteMask]);
emProductID.Text := Format("%.2x", [VerInfo.wProductID]);
end;

end.


С уважением,


 
Чужой   (2002-04-25 16:22) [3]

> Johnmen ©

Прочитайте, пожалуйста, внимательно мой вопрос.


> Игорь Шевченко ©

Получение версии в этом случае округляется, т.е. например, у моей Винды98 версия 4.10.222. Применяя данную "читалку", я получу значение 4.10.
За код спасибо.


 
Игорь Шевченко   (2002-04-25 17:00) [4]

День добрый,

Применяя Help к структуре OSVERSIONINFO увидите, что там есть поля dwMajorVersion, dwMinorVersion, dwBuildNumber,
совокупность которых и даст вам 4.10.222

С уважением,



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
1-26129
Basilio
2002-04-23 16:59
2002.05.09
try..except не работает


1-26134
andrew_f
2002-04-24 18:15
2002.05.09
dcu - > dll


1-26066
Akim2
2002-04-25 19:37
2002.05.09
Форма AlwaysTop


1-26156
VJar
2002-04-25 00:40
2002.05.09
Так что никто не знает???


14-26262
iZEN
2002-04-02 00:36
2002.05.09
Java vs. .Net





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский