PDA

View Full Version : شناسایی سیستم عامل



MNosouhi
چهارشنبه 30 فروردین 1385, 11:46 صبح
سلام من کدی یا کامپوننتی احتیاج دارم که بتونه ویندوز Xp رو شناسایی کنه ، کد هایی که دارم ویندوز Xp رو به عنوان ویندوز NT مشخص می کنه ، در حالی که میخوام دقیقا مشخص کنه که ویندوز ، Xp هست یا نه؟

Inprise
چهارشنبه 30 فروردین 1385, 12:05 عصر
اگر از تابع GetVersionEx استفاده کنی , متغیری از نوعOSVERSIONINFO برمیگرده که یک ساختار است ، اگر عضو MajorVersion اش 5 و عضو MinorVersion اش 1 بود ، ما یک ویندوز Xp داریم .

MNosouhi
چهارشنبه 30 فروردین 1385, 13:32 عصر
کدی که نوشتم این بود :


procedure TForm1.Button1Click(Sender: TObject);
var s:OSVERSIONINFO;
begin
GetVersionEx(s);
if (s.dwMajorVersion=5)and(s.dwMinorVersion=1) then ShowMessage('Windows Xp')
else
ShowMessage('MajorVersion='+IntToStr(s.dwMajorVers ion)+'-'+'MirorVersion='+IntToStr(s.dwMinorVersion))
end;
و جوابی که گرفتم :
Majorvrsion=17825914-MirorVersion=5898313
یعنی اینکه دستورالعمل شما جواب نمیده .
در ضمن از ویندوز اکس پی مدیا سنتر استفاده می کنم.
با تشکر

realman
چهارشنبه 30 فروردین 1385, 13:43 عصر
من دقیقا از این تابع استفاده می کنم و جواب هم گرفتم.



function IsXP: Boolean;
var
OS: TOSVERSIONINFO;
begin
OS.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
GetVersionEx(os);
Result := (OS.dwPlatformId = VER_PLATFORM_WIN32_NT) and
(OS.dwMajorVersion = 5) and (OS.dwMinorVersion = 1);
end;

Inprise
چهارشنبه 30 فروردین 1385, 13:44 عصر
در خروجی که نوشتی ، همانطور که گفتم ، ورژن اصلی 5 و ورژن فرعی 1 هست . به نظر میاد چیزی در مورد ورژن نمیدونی . با کمی دقت میتونی کدت رو اصلاح کنی و جواب مطلوب رو بگیری .

MNosouhi
چهارشنبه 30 فروردین 1385, 14:45 عصر
از لطفتون ممنون ، درست شد.