缘分的天空

中 国 加 油

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

各位,在下是初学者:
      正用到注册表的添加删除,就写了下面的东西....
      绝色的地方是删除操作,不知道是该用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;

posted on 2006-12-14 17:48  文强  阅读(584)  评论(0)    收藏  举报