PDA

View Full Version : کار با ریجستری



iranfa
پنج شنبه 17 اردیبهشت 1388, 06:55 صبح
سلام دوستان ؛ من میخواهم یک برنامه بسازم که کارش با ریجستری » مشکلم اینجاست چه زور میتونم همه ی value های یک key (کلید) رو در یک listbox پیاده کنم ،و همچنین سوال دوم اینکه چه طوری داده داخل value رو تغییر بدهم ...

MSHService
پنج شنبه 17 اردیبهشت 1388, 08:25 صبح
سلام
فکر کنم میگشتی پیدا میکردی.

reg: TRegistry;
temp:TStringlist;

reg := TRegistry.Create;
temp:=TStringlist.Create;

reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Run', False);

Reg.GetValueNames(temp); //Get names of key then insert to temp
ListBox1.Items:=temp;
این نمونه تمامه حتوای کلیده Run رو برمیگردونه.
موفق باشید.

1485159
جمعه 18 اردیبهشت 1388, 14:48 عصر
خوب چطوری نوعشون رو تشخیص بدیم!؟..

merced
جمعه 18 اردیبهشت 1388, 23:14 عصر
case reg.GetDataType('ValueName') of
rdUnknown : ; //
rdString : ; //
rdExpandString : ; //
rdInteger : ; //
rdBinary : ; //
end ;

1485159
شنبه 19 اردیبهشت 1388, 09:40 صبح
میشه یکم توضیح بدین!؟..

Felony
شنبه 19 اردیبهشت 1388, 18:06 عصر
میشه یکم توضیح بدین!؟..
دستور Case مانند if عمل میکنه ( کار چند تا if رو انجام میده )
در کدی که دوستمون گزاشتن نوع کلید با مقادیر داده شده مقایسه میشه ( Unknown , String و ... ) و با هرکدوم که یکسان باشه کد جلوی اون عبارت اجرا میشه .

مثلا :


case reg.GetDataType('ValueName') of
rdUnknown :ShowMessage('Unknown');
rdString :ShowMessage('String') ;
rdExpandString :ShowMessage('Expand String') ;
rdInteger :ShowMessage('Integer') ;
rdBinary :ShowMessage('Binary') ;
end ;