PDA

View Full Version : تغییر نام key در رجیستری



ariobarzan
یک شنبه 14 بهمن 1386, 08:24 صبح
با سلام به همه دوستان عزیز
چطور میشه یک key در رجیستری ویندوز را rename کرد.
من تقریبا همه تاپیک های مربوط به رجیستری و دلفی را خوندم ولی راجع به تغییر نام یک key
چیزی ندیدم . توضیح این که نمی خوام اطلاعات داخل اون key تغییری کنه فقط اسمش.
لطفا راهنمایی کنید
متشکرم

vcldeveloper
یک شنبه 14 بهمن 1386, 08:50 صبح
تابعی در ویندوز برای Rename کردن یک Key در رجیستری وجود نداره. باید یک Key با نام جدید درست کنید و محتوی Key اصلی را به آن کپی کنید و در نهایت Key اصلی را حذف کنید.

skmkh6056
یک شنبه 14 بهمن 1386, 12:05 عصر
با سلام به همه دوستان عزیز
چطور میشه یک key در رجیستری ویندوز را rename کرد.
من تقریبا همه تاپیک های مربوط به رجیستری و دلفی را خوندم ولی راجع به تغییر نام یک key
چیزی ندیدم . توضیح این که نمی خوام اطلاعات داخل اون key تغییری کنه فقط اسمش.
لطفا راهنمایی کنید
متشکرم

میتونید از تابع movekey استفاده کنید. از تابع CreateKeyنیز میتونی استفاده کنی ولی باید تمام پارامترها را به مسیر انتقال بدی

ariobarzan
چهارشنبه 17 بهمن 1386, 14:06 عصر
با تشکر از دوستانی که راهنمایی فرمودند
من از این دستور هم استفاده کردم ولی هیچ پیام خطایی نمیده هیچ کاری هم نمیکنه
عمل move انجام نمیشه
لطفا راهنمایی کنید اشکال کجاست ؟

Enable;
var
reg: tregistry;
begin
reg := tregistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\currentcontrolset\control\safe boot\',true);
reg.MoveKey('minimal.bak','minimal',true);
reg.MoveKey('network.bak','network',true);
end;

ariobarzan
چهارشنبه 17 بهمن 1386, 14:12 عصر
با عرض معذرت از دوستان
کد برنامه را تصحیح می کنم
reg: tregistry;
begin
reg := tregistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\currentcontrolset\control\safe boot\',true);
reg.MoveKey('minimal','minimal.bak',true);
reg.MoveKey('network','network.bak',true);
end;

لطفا اشکال کار را توضیح دهید
از توجه شما ممنون

vcldeveloper
چهارشنبه 17 بهمن 1386, 14:13 عصر
دقت کنید که در ویندوزهای NT base (شامل XP و Vista هم میشه)، باید هر یک از SubKey ها را بصورت جداگانه Move کنید؛ یعنی Move کردن یک Key در NT موجب جابجایی زیرشاخه های آن نمیشه.
در ضمن، وقتی کارتون با کلید مربوطه تموم شد، اونو با CloseKey ببندید.

ariobarzan
چهارشنبه 17 بهمن 1386, 14:39 عصر
با تشکر از توجه آقای کشاورز
من حتی با یک key بدون subkey هم تست کردم ولی باز هم جواب نمیده
اگه میشه یه مثال کوچولو که جواب هم بده بفرستید
ضمنا از تذکرتون در مورد closekey هم ممنون

vcldeveloper
چهارشنبه 17 بهمن 1386, 18:41 عصر
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
try
RootKey := HKEY_LOCAL_MACHINE;
MoveKey('\SYSTEM\ControlSet001\Control\WOW','\SYST EM\ControlSet001\Control\WOW1',False);
finally
Reg.Free;
end;
end;