Reg:TRegistry 注册表操作《》

Function GetCurrentUserName:String;  //获取用户名
var buf:   array[0..255]   of   char;
      i:   DWORD;   
begin
  i:=   256;
  GetUserName(buf,i);
  Result:=strpas(buf);
end;

Function  GetCurrentUserName2:String;
Var Reg:TRegistry;
begin
  Result:='None';
  Reg:=Tregistry.Create;{创建Tregistry对象的实例}
  Reg.Access:=KEY_ALL_ACCESS;
  Reg.Rootkey:= Hkey_Current_User;{设置根键名称}
  try
    if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer',True) then
      begin
        Result:=Reg.ReadString('Logon User Name');
        //ShowMessage('Open Reg key! Result=' +Result);
        Reg.CloseKey;{将更改内容写入注册表并关闭}
      end;
  finally
    Reg.Free;
  end;
  //ShowMessage('CurUserName='+Result);
end;

  

Procedure TFrmPlay.SetRegWallPaper(StrFile:String);
Var Reg:TRegistry;
begin
  Reg:=Tregistry.Create;{创建Tregistry对象的实例}
  Reg.Rootkey:= Hkey_Current_User;{设置根键名称}
  try
    if Reg.OpenKey('Control Panel\Desktop',False) then {打开Control Panel\Desktop 路径对应的主键}
      begin
        //ShowMessage('打开注册表成功');
        Reg.WriteString('TileWallPaper','0');
        Reg.WriteString('WallpaperStyle','2');
        Reg.WriteString('Wallpaper',StrFile);{向TileWallpaper 和Wallpaper串覆盖写入新值}
        Reg.WriteString('ConvertedWallpaper',StrFile);
        Reg.WriteString('OriginalWallpaper',StrFile);
        Reg.CloseKey;{将更改内容写入注册表并关闭}
        Systemparametersinfo(SPI_SETDESKWallpaper,0,Pchar(StrFile),
           SPIF_upDateINIFIle Or SPIF_SENDWININICHANGE); // or SPIF_SendChange);{向Windows发送消息,通知Windows更换壁纸}
      end;
  finally
    Reg.Free;
  end;
end;

 

Function RegistryValueExist(_RootKey: HKEY;
            _Localkey,sName,sValue: String):Boolean;
Var  TR: TRegIniFile; sRead:String;
begin
  TR := TRegIniFile.Create('');
  sRead:='';
  try
    case _RootKey of //default is RootKey=HKEY_CURRENT_USER
      HKEY_CLASSES_ROOT,
      HKEY_CURRENT_USER,
      HKEY_LOCAL_MACHINE,
      HKEY_USERS,
      HKEY_PERFORMANCE_DATA,
      HKEY_CURRENT_CONFIG,
      HKEY_DYN_DATA : TR.RootKey := _RootKey;
    end; //end case _RootKey

    with TRegistry(TR) do
    begin
      if OpenKey(_Localkey,true) then
        try
          sRead:=ReadString(sName);
        finally
          CloseKey;
        end;
    end;

  finally
    TR.Free;
  end;
  if sRead=sValue then Result:=True
  else Result:=False;
end;

  

procedure DeleteOneRegistryValue(_RootKey: HKEY;
            _Localkey,sValue: String);
Var  TR: TRegIniFile;

begin
  TR := TRegIniFile.Create('');
  try
    case _RootKey of //default is RootKey=HKEY_CURRENT_USER
      HKEY_CLASSES_ROOT,
      HKEY_CURRENT_USER,
      HKEY_LOCAL_MACHINE,
      HKEY_USERS,
      HKEY_PERFORMANCE_DATA,
      HKEY_CURRENT_CONFIG,
      HKEY_DYN_DATA : TR.RootKey := _RootKey;
    end; //end case _RootKey

    with TRegistry(TR) do
    begin
      if OpenKey(_Localkey,true) then
        try
          TR.DeleteValue(sValue);
        finally
          CloseKey;
        end;
    end; //with TRegistry(TR)

  finally
    TR.Free;
  end; //try finally
end;

  

 

posted @ 2015-04-09 18:08  海蓝7  阅读(378)  评论(0)    收藏  举报