壁紙を変更するにはSystemParametersInfo関数を使用します。この関数の第一引数にSPI_SETDESKWALLPAPERを設定し、第三引数に壁紙にしたいファイル名を指定します。第四引数には通常はSPIF_UPDATEINIFILEを設定し、変更した壁紙(ファイル名)がレジストリに書き込まれるようにします。壁紙を非表示にしたい場合、ファイル名の変わりにnilを渡します。ただし、nilを渡した場合は関数を二回呼び出すか、レジストリに保存されている壁紙のファイル名をクリアしてから呼び出す必要があります。
function ChangeWallpaper(const FileName: String): Boolean;
//壁紙を変更
begin
Result := SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
PChar(FileName), SPIF_UPDATEINIFILE);
end;
function ChangeWallpaperEx(const FileName: String): Boolean;
//壁紙のクリアもできる壁紙変更関数
begin
if FileName = '' then
begin
with TRegistry.Create do
begin
try
RootKey := HKEY_CURRENT_USER;
if OpenKey('Control Panel\desktop', False) then
WriteString('Wallpaper', '');
CloseKey;
finally
Free;
end;
end;
Result := SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, 0);
end else
Result := SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
PChar(FileName), SPIF_UPDATEINIFILE);
end;
|