
نوشته شده توسط
مجتبی تاجیک
نه شما نه کاربر دیگه پسر خاله من نیستید که به سوال x جواب داده بشه و به سوال y نه !
نمونه ضمیمه رو ببینید .
منظورم شما نبودید.خیلی کاربرهای دیگه هستن که همه ستاره هاشونم کامله... ممنون ولی من که اجرا کردم خروجی این بود"SerialNumber" و هیچی دیگه نداشت. فکر میکنم استفاده از WMI فقط یکی از راه های بدست آوردنشه و ممکنه رو بعضی سیستم ها با سطح دسترسی های مختلف ، نوع هارد ، نوع ویندوز متفاوت باشه دلیل حرفم هم استفاده این کامپوننت که دوستمون گذاشت و رو همه سیستم ها جواب میده هست. این کامپوننت هم از WMI استفاده میکنه (خط یکی به آخر GetDevInfoWMI)هم چنتا روش دیگه هرکدوم نشد میره سراغ اونیکی
procedure THDDInfo.GetInfo;
var devno : byte;
begin
devno := ord(fdrive);
fillchar(IdeInfo, sizeof (IdeInfo), 0);
case fmethod of
gimAuto:
begin
if fisNT then
try
GetDevInfoNT(devno);
except
try
GetDevInfoNTScsi(devno)
except
GetDevInfoNTZeroRights(devno,'');
end;
end
else
try
GetDevInfoWin9x(devno)
except
GetInfoASPI(devno);
end;
end;
gimNT:
GetDevInfoNT(devno);
gimScsi:
GetDevInfoNTScsi(devno);
gim9x:
GetDevInfoWin9x(devno);
gimByName:
try
GetDevInfoNTScsibyName(fName);
except
GetDevInfoNTZeroRights(0,fName);
end;
gimASPI:
GetInfoASPI(devno);
gimZeroRights:
GetDevInfoNTZeroRights(devno,'');
gimWMI:
GetDevInfoWMI(devno);
end;