معرفة النظام المنصب في الحاسوب
#1
في البداية السلام عليكم


دالة لمن يرد معرفة النظام المنصب عنده

كود :
function GetWinVersion: String;
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;

بالتوفيق للجميع
و السلام.
الرد
#2
وعليكم السلام ورحمة الله وبركاته
بارك الله لك أخي MjIrIm.
هذا التابع مفيد جدا لكنه يحتاج Update لحالة WindowsSeven
يمكن مبدئيا يمكن استخدام المفتاح:
كود :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
لقراءة القيمة ProductName
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#3
نعم لاحظت ذلك منذ قبل
لكني وضعتها للافادة لمن يريد المحاولة و البحث

في الحقيقة عندي مجموعة من المواضيع و المشاركات كنت
سابقا مبرمج أن توضع منذ 3 أشهر تقريبا لكن لكثرة المشاغل
لم أستطع, أحاول الان متابعة ما فاتني من مواضيع هامة
و المشاركة ولو بالقليل
بارك الله فيك أخي kachwahed

و السلام.
الرد
#4
المصدر الرسمي من عند Microsoft لدالة تحديد النظام مكتوبة بـ #C
كود :
http://msdn.microsoft.com/en-us/library/ms724429%28VS.85%29.aspx
نفس الدالة بلغة دلفي وتشمل نظام التشغيل Windows 7 أيضا وجربتها على Delphi2010. في المرفقات.
أيضا يمكن استخدام الوحدة JclSysInfo من المكتبة العملاقة JEDI Code Library
شكرا كثيرا أخي الكريم.


الملفات المرفقة
.rar   GetWinVerion.rar (الحجم : 2.77 ك ب / التحميلات : 195)
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#5
قمت بتجربة جميع الاكواد السابقه تتطلب الفتح بالادمن هذا الكود نجح معي
كود :
function getwinversion: String;
begin
  result:='unbekannte version';
  case win32platform of
    1:// 9x-reihe

      if win32majorversion=4 then begin
        case win32minorversion of
            0: Result:='windows 95';
            10: Result:='windows 98';
            90: Result:='windows me';
        end;
      end;
  2: // nt-reihe

     case win32majorversion of
         3:if win32minorversion=51 then
              result:='windows nt 3.51';
         4:if win32minorversion=0 then
             result:='windows nt 4';
         5:case win32minorversion of
              0: Result:='windows 2000';
              1: Result:='windows xp';
              2: Result:='windows .net server';
           end;
         6:case win32minorversion of
              0: Result := 'windows vista';
              1: Result := 'windows 7';
           end;
     end;
  end;
  //win32csdversion enthält informationen zu servicepacks

  if win32csdversion<>'' then
    result:=result +' '+ win32csdversion;
end;


procedure tform1.button1click(sender: Tobject);
begin
  label1.caption:= getwinversion;
end;
الرد
#6
ينصب في بيئة Windows فقط!
OK، لكن أي إصدار Windows؟ 3.11، 95، 98، NT2003، 2000NT، Win7، WinXP...
شيء آخر هذا لمعرفة على أي نظام يعمل برنامجك وليس على أي نظام تم تنصيب دلفي فيه!
للعلم، يمكن تشغيل معظم برامج Winodws على توزيعات أخرى في وضع محاكاة (مثال Wine الشهير في Linux)
ويمكن العكس أيضا...
الرد
#7
إضافة طفيفة على الوحدة التي وضعها أخي kachwahed في المشاركة رقم 4
لدعم Windows 8 مبدئيا حتى إشعار اخر من msdn
تم دعم النسخ التالية Pro, Enterprise تم تجريب على Windows 8 Pro


الملفات المرفقة
.7z   GetWinVerion.7z (الحجم : 3.81 ك ب / التحميلات : 39)
سبحان الله وبحمده سبحان الله العظيم
الرد
#8
إضافة دعم Windows 8.1 حتى إشعار آخر من msdn


الملفات المرفقة
.7z   GetWinVerion.7z (الحجم : 3.98 ك ب / التحميلات : 35)
سبحان الله وبحمده سبحان الله العظيم
الرد
#9
كود :
var
  hDWMDLL: Cardinal = 0;
  DwmIsCompositionEnabled: function(pfEnabled: Pbool): HRESULT; stdcall;

function IsWindowsAero: Boolean;
var
  R: longbool;
begin
  Result := false;
  if hDWMDLL <> 0 then
  begin
    if @DwmIsCompositionEnabled <> nil then
    begin
      DwmIsCompositionEnabled(@R);
      Result := R;
    end;
  end;
end;
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#10
كود :
procedure GetWindowsVersion(var Major, Minor: Integer);
var
  Ver : Longint;
begin
  Ver := GetVersion;
  Major := LoByte(LoWord(Ver));
  Minor := HiByte(LoWord(Ver));
end;


function IsW7: Boolean;
var
  Major, Minor : Integer;
begin
  GetWindowsVersion(major, minor);
  Result := (major = 6) and (minor = 1);
end;

function Is9XOS: Boolean;
var
  Major, Minor : Integer;
begin
  GetWindowsVersion(major, minor);
  Result := (major < 5);
end;

function IsW8: Boolean;
var
  Major, Minor : Integer;
begin
  GetWindowsVersion(major, minor);
  Result := ((major = 6) and (minor = 2)) or (major > 6);
end;

function IsVistaOs: Boolean;
var
  Major, Minor : Integer;
begin
  GetWindowsVersion(major, minor);
  Result := (major >= 6);
end;

function CheckWXP: Boolean;
var
  Major, Minor : Integer;
begin
  GetWindowsVersion(major, minor);
  Result := (major > 5) or ((major = 5) and (minor = 1));
end;

function CheckW2kWXP: Boolean;
var
  Major, Minor : Integer;
begin
  GetWindowsVersion(major, minor);
  Result := (major > 5) or ((major = 5) and ((minor = 0) or (minor = 1) or (minor = 2)));
end;
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد


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


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