مشاهدة النسخة كاملة : معرفة اصدار النطام Os version
php3man
04-06-2010, 08:45 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمه الله وبركاته
طريقه بسيطه من خلال ملفات الريجيستري أستخراج Os version
تشتغل علي أكس بي وفيستا وويندوز سفن
في قائمه uses نضمن Registry
ثم في نضيف Button و Edit
نكتب بال Button
procedure TForm1.Button1Click(Sender: TObject);
Var delphi4arab : TRegistry;
begin
delphi4arab := TRegistry.Create;
delphi4arab.RootKey := HKEY_LOCAL_MACHINE;
Try
delphi4arab.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion',True) ;
edit1.Text := delphi4arab.ReadString('ProductName') ;
except
end;
end;
بارك الله فيك و يوجد اكتر من طريقة لمعرفة النظام .
kachwahed
23-08-2010, 12:06 PM
وعليكم السلام ورحمة الله
ينبغي دائما تحرير الذاكرة:
function GetWindowsName: string;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion', False) then
Result := Reg.ReadString('ProductName');
finally
Reg.Free;
end;
end;
في هذا زيادة تفاصيل:
function GetWindowsVersion: string;
var
VerInfo: TOsversionInfo;
PlatformId, VersionNumber: string;
Reg: TRegistry;
begin
VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
GetVersionEx(VerInfo);
// Detect platform
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
case VerInfo.dwPlatformId of
VER_PLATFORM_WIN32s:
begin
// Registry (Huh? What registry?)
PlatformId := 'Windows 3.1';
end;
VER_PLATFORM_WIN32_WINDOWS:
begin
// Registry
Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVe rsion', False);
PlatformId := Reg.ReadString('ProductName');
VersionNumber := Reg.ReadString('VersionNumber');
end;
VER_PLATFORM_WIN32_NT:
begin
// Registry
Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion', False);
PlatformId := Reg.ReadString('ProductName');
VersionNumber := Reg.ReadString('CurrentVersion');
end;
end;
Reg.Free;
Result := PlatformId + ' (version ' + VersionNumber + ')';
end;
بالتوفيق.
أبو محمد اللحياني
23-08-2010, 12:33 PM
للفائدة هذا الكود ليس من اختراعي ولكن بعد البحث وجدته :
TWinVersion = (Unknown, Win95, Win98, Win98SE, WinNT, WinME, Win2000, WinXP,
WinVista);
// ---------------------------
function GetWinVersion: TWinVersion;
var
osVerInfo: TOSVersionInfo;
majorVersion, minorVersion: integer;
begin
Result := Unknown;
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
minorVersion := osVerInfo.dwMinorVersion;
majorVersion := osVerInfo.dwMajorVersion;
case osVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT:
begin
if majorVersion <= 4 then
Result := WinNT
else if (majorVersion = 5) and (minorVersion = 0) then
Result := Win2000
else if (majorVersion = 5) and (minorVersion = 1) then
Result := WinXP
else if (majorVersion = 6) then
Result := WinVista;
end;
VER_PLATFORM_WIN32_WINDOWS:
begin
if (majorVersion = 4) and (minorVersion = 0) then
Result := Win95
else if (majorVersion = 4) and (minorVersion = 10) then
begin
if osVerInfo.szCSDVersion[1] = 'A' then
Result := Win98SE
else
Result := Win98;
end
else if (majorVersion = 4) and (minorVersion = 90) then
Result := WinME
else
Result := Unknown;
end;
end;
end;
end;
وينقصه الدلالة على ويندوز 7
kachwahed
23-08-2010, 03:17 PM
وينقصه الدلالة على ويندوز 7
تلك طريقة أخرى تم طرحها سابقا مع إضافة Win7 هنا:
http://www.delphi4arab.com/forum/showthread.php?t=2264
vBulletin® , Copyright ©2008-2012