delphi4arab منتديات دلفي للعرب

نسخة كاملة : معرفة اصدار النطام Os version
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم


السلام عليكم ورحمه الله وبركاته

طريقه بسيطه من خلال ملفات الريجيستري أستخراج Os version

تشتغل علي أكس بي وفيستا وويندوز سفن

في قائمه uses نضمن Registry

ثم في نضيف Button و Edit

نكتب بال Button


PHP كود :
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; 
بارك الله فيك و يوجد اكتر من طريقة لمعرفة النظام .
وعليكم السلام ورحمة الله
ينبغي دائما تحرير الذاكرة:
كود :
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'); [color=Blue]finally[/color] [color=Blue] Reg.Free;[/color] end; end;
في هذا زيادة تفاصيل:
PHP كود :
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\CurrentVersion', 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; 
بالتوفيق.
للفائدة هذا الكود ليس من اختراعي ولكن بعد البحث وجدته :

كود :
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
[COLOR="black"]
إقتباس :وينقصه الدلالة على ويندوز 7
تلك طريقة أخرى تم طرحها سابقا مع إضافة Win7 هنا:
http://www.delphi4arab.net/forum/showthr...p?tid=2264
[/COLOR]