المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : معرفة اصدار النطام 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;

Rain
23-08-2010, 09:15 AM
بارك الله فيك و يوجد اكتر من طريقة لمعرفة النظام .

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