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;