PDA

View Full Version : رجیستری



yazdan
دوشنبه 21 اردیبهشت 1383, 10:40 صبح
چجوری می شه تو رجیستری یه چیزی اضافه کرد و یا تغییر داد؟
ضمنا می خواهیم این مقادیر با installshild هم set شوند.

آیا می شه یه مقداری توی رجیستری رو قفل کرد که کسی نتوته عوض کنه و فقط خودمون با یه ترفندی بتونیم عوض کنیم.

آناهیتا
دوشنبه 21 اردیبهشت 1383, 13:13 عصر
با سلام
1- تو اینترنت در این باره مطلب زیاد است اما کار با کامپوننتها کار را خیلی راحت می کند یکی از آنهاAHM
2-منظور از SET شدن واضح نیست.
3-بهترین راه استفاده از رمز سازی و رمز گشایی می باشد.

مهدی کرامتی
دوشنبه 21 اردیبهشت 1383, 13:25 عصر
برای اینکار باید از شیء TRegistry استفاده کنی. مثال:

function GetRegistryValue(KeyName: string): string;
var
Registry: TRegistry;
begin
Registry := TRegistry.Create(KEY_READ);
try
Registry.RootKey = HKEY_LOCAL_MACHINE;
// False because we do not want to create it if it doesn't exist
Registry.OpenKey(KeyName, False);
Result := Registry.ReadString('VALUE1');
finally
Registry.Free;
end;
end;
برای توضیحات بیشتر راهنمای دلفی را برای TRegistry‌ ببینید.

moradi_am
دوشنبه 21 اردیبهشت 1383, 13:26 عصر
یک مثال که البته از پستهای دوستان در همین سایت است ولی آدرس آنرا نمیدانم :

procedure Options.SaveSettings(Sender: TObject);
var
hndKey: HKey;
ValBuf: PChar;
cb: Longint;
begin
...
ValBuf:=StrAlloc(1024);

RegCreateKey('HKEY_CLASSES_ROOT\InfoMan\Options\Di rectories',hndKey);
cb:=1024;
RegSetValue(hndKey,'Working',StrPCopy(ValBuf,Worki ngDir));
cb:=1024;
RegSetValue(hndKey,'Templates',StrPCopy(ValBuf,Tem plateDir));
RegCloseKey(hndKey);

StrDispose(ValBuf);
end;

function GetWorkingDir: String;
var
hndKey: HKey;
ValBuf: PChar;
cb: Longint;
begin
...
ValBuf:=StrAlloc(1024);
cb:=1024;
if RegOpenKey('HKEY_CLASSES_ROOT','InfoMan\Options\Di rectories',hndKey) = ERROR_SUCCESS then begin
RegQueryValue(hndKey,'Working',ValBuf,cb);
GetWorkingDir:=StrPas(ValBuf);
end
else
GetWorkingDir:='C:\WINDOWS';
end;