معرفة اصدار النطام Os version
#1
بسم الله الرحمن الرحيم


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

طريقه بسيطه من خلال ملفات الريجيستري أستخراج 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; 
[-] كل من 1 user says قال شكرا ل php3man على المشاركة المفيدة
  • mohamed49
الرد
#2
بارك الله فيك و يوجد اكتر من طريقة لمعرفة النظام .
الرد
#3
وعليكم السلام ورحمة الله
ينبغي دائما تحرير الذاكرة:
كود :
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; 
بالتوفيق.
[-] كل من 1 user says قال شكرا ل kachwahed على المشاركة المفيدة
  • mohamed49
الرد
#4
للفائدة هذا الكود ليس من اختراعي ولكن بعد البحث وجدته :

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


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم