各位,在下是初学者:
正用到注册表的添加删除,就写了下面的东西....
绝色的地方是删除操作,不知道是该用deleteKey还是deleteValue !!!一开始用的是后者,结果把注册表的RUN键全给删了...郁闷到现在....
有会这方面的能不能留言给小弟提示一下...
procedure TForm_Reg_operate.Button1Click(Sender: TObject);
var
MyReg:TRegistry;
begin
MyReg:=TRegistry.Create;
MyReg.RootKey:=HKEY_LOCAL_MACHINE;
if self.CheckBox_autoRun.Checked then //注入注册表
begin
try
if MyReg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true) then
begin
if not MyReg.ValueExists(Application.Name) then //键值不存在则创建
begin
MyReg.WriteString(Application.Name,Application.ExeName);
Memo1.Lines.Add('操作成功');
memo1.Lines.Add(MyReg.ReadString(Application.Name));
end else if MyReg.ReadString(Application.Name)<>Application.ExeName then//存在但信息不符则删除重建
begin
MyReg.DeleteKey(Application.Name);
MyReg.WriteString(Application.Name,Application.ExeName);
memo1.Lines.Add('重建成功');
memo1.Lines.Add(MyReg.ReadString(Application.Name));
end;
end;
MyReg.CloseKey;
except
end;
end else //删除注册表
begin
if MyReg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true) then
begin
MyReg.DeleteValue(Application.Name);
if MyReg.ValueExists(Application.Name)then
memo1.Lines.Add('删除成功')
else
memo1.Lines.Add('删除失败');
end;
end;
MyReg.Destroy;
end;
浙公网安备 33010602011771号