24. februar 2001 - 13:52
Der er
3 kommentarer og
1 løsning
Opdatering i RegEdit?
Hvordan får jeg mit program til at opdatere de oplysninger jeg har skrevet i Registreringsdatabasen med det samme ????? Nu skal jeg først genstarte før windows indlæser de nye oplysninger.....??
24. februar 2001 - 13:59
#1
Det kommer an på hvilke oplysninger det er. Hvis du vil lave Windows-indstillinger om, så bør du bruge WinAPI\'en i stedet, fordi så bliver det opdateret straks.
26. februar 2001 - 07:51
#4
Du skal bruge funktionen
SystemParametersInfo(); til dit formål. Skal du fortælle windows at dit billede på din desktop har ænderet sig skal du skrive :
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE );
Her er i øverigt et komplet eksempel på hvordan man gør :
const
WPS_Tile = 0;
WPS_Center = 1;
WPS_SizeToFit = 2;
WPS_XY = 3;
procedure SetWallPaperExt(sWallpaperBMPPath : String; nStyle, nX, nY: Integer );
var
Reg : TRegIniFile;
s : String;
X, Y : Integer;
begin
Reg := TRegIniFile.Create(\'Control Panel\\Desktop\');
s := \'0\';
X := 0;
Y := 0;
case nStyle of
WPS_Tile : s := \'1\';
WPS_Center : nStyle := WPS_Tile;
WPS_XY :
begin
nStyle := WPS_Tile;
X := nX;
Y := nY;
end;
end;
Reg.WriteString( \'\', \'Wallpaper\', sWallpaperBMPPath );
Reg.WriteString( \'\', \'TileWallpaper\', s );
Reg.WriteString( \'\', \'WallpaperStyle\', IntToStr( nStyle ) );
Reg.WriteString( \'\', \'WallpaperOriginX\',IntToStr( X ) );
Reg.WriteString( \'\', \'WallpaperOriginY\', IntToStr( Y ) );
Reg.Free;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE );
end;
Og så skal sikdet bare kaldes :
SetWallpaperExt( \'~Tmp.BMP\' , WPS_XY, Left, Top);
eller
SetWallpaperExt( \'~Tmp.BMP\' , WPS_Center, 0, 0 );
Jens B