Форум: "Основная";
Текущий архив: 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