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

مشاهدة النسخة كاملة : معرفة النظام المنصب في الحاسوب


MjIrIm
02-01-2010, 10:41 PM
في البداية السلام عليكم


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

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;

بالتوفيق للجميع
و السلام.

kachwahed
02-01-2010, 10:54 PM
وعليكم السلام ورحمة الله وبركاته
بارك الله لك أخي MjIrIm.
هذا التابع مفيد جدا لكنه يحتاج Update لحالة WindowsSeven
يمكن مبدئيا يمكن استخدام المفتاح:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
لقراءة القيمة ProductName

MjIrIm
02-01-2010, 11:00 PM
نعم لاحظت ذلك منذ قبل
لكني وضعتها للافادة لمن يريد المحاولة و البحث

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

و السلام.

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

Delphiero
23-05-2011, 02:08 PM
قمت بتجربة جميع الاكواد السابقه تتطلب الفتح بالادمن هذا الكود نجح معي


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;

karamofweb
23-05-2011, 10:05 PM
ok لكن ما الهدف من هذه الدالة ما دادم دلفي 6 و 7 ينصب في بيئة ويندوز فقط ؟؟

kachwahed
23-05-2011, 11:26 PM
ينصب في بيئة Windows فقط!
OK، لكن أي إصدار Windows؟ 3.11، 95، 98، NT2003، 2000NT، Win7، WinXP...
شيء آخر هذا لمعرفة على أي نظام يعمل برنامجك وليس على أي نظام تم تنصيب دلفي فيه!
للعلم، يمكن تشغيل معظم برامج Winodws على توزيعات أخرى في وضع محاكاة (مثال Wine الشهير في Linux)
ويمكن العكس أيضا...

karamofweb
24-05-2011, 12:54 AM
الآن فهمت القصد شكرا اخي كاش واحد

cargem
18-08-2011, 10:59 PM
هل هذا الاختبار سيعمل مع win 64bit ؟
طبعا لا
اذاُ مـــــــــــا الحل؟