![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Kак изменить рисунок рабочего стола Windows XP? [D6, D7, WinXP]
Muchacho © (2004-07-16 14:39:00)Kак изменить рисунок рабочего стола Windows XP?
Muchacho (2004-07-26 21:05:00) [1]Спасибо вам, но это работает только для формата бмп. Если пользователь выбират рисунок jpeg в окне свойства экрана, XP переобразует его в бмп, сохраняет как
Documents and Settings\User\Local Settings\Application Data\Microsoft\wallpaper1.bmp
и записывает в реестр соответствуюшие пути.
Я в программе переобразовал jpeg в bmp, но тогда качество заметно ухудшается. Подскажите пожалуюста, что сделать?
Alex#abc (2004-07-26 09:45:00) [2]PS
в 2000 работает как часы!
Alex#abc (2004-07-26 09:44:00) [3]У меня была тажа проблема связанная с Active DeskTop, как пишут умные люди, вся проблема в строке:
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,NIL,(SPIF_SENDWININICHANGE+SPIF_UPDATEINIFILE));
А точнее в ее последнем параметре (взято из работающей программы (полный текст смотри в прошом послании))
Muchacho (2004-07-23 17:56:00) [4]сделал как сказал Alex#abc , все как-будто нормально, записывает в реестр тоже, но только не обновляется. В чем проблема по-вашему?
Alex#abc (2004-07-23 09:36:00) [5]unit UDT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Picture: TButton;
ReFresh: TButton;
PSet: TButton;
procedure PictureClick(Sender: TObject);
procedure PSetClick(Sender: TObject);
procedure ReFreshClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
FPic:string;
implementation
{$R *.dfm}
procedure TForm1.PictureClick(Sender: TObject);
begin
if OpenDialog1.Execute then Fpic:=OpenDialog1.FileName;
end;
procedure TForm1.PSetClick(Sender: TObject);
var reg:TRegIniFile;
begin
reg:=TRegIniFile.Create('control panel\desktop');
reg.WriteString('','wallpaper',FPic);
reg.WriteString('','tileWallpaper','0');
reg.WriteString('','Wallpaperstyle','0');
reg.Free;
end;
procedure TForm1.ReFreshClick(Sender: TObject);
begin
PSet.Click;
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,NIL,(SPIF_SENDWININICHANGE+SPIF_UPDATEINIFILE));
end;
end.
grom (2004-07-22 23:30:00) [6]это работает в Windows XP
у меня Delphi 7
procedure TForm1.BWriteClick(Sender: TObject);
var Update: Cardinal;
TileWallpaper, WallpaperStyle: string;
begin
if RadioGroup1.ItemIndex = 0
then Update := SPIF_UPDATEINIFILE
else Update := SPIF_SENDCHANGE;
case CBStyle.ItemIndex of
0: begin
TileWallpaper := '0';
WallpaperStyle := '2';
end;
1: begin
TileWallpaper := '0';
WallpaperStyle := '0';
end;
2: begin
TileWallpaper := '1';
WallpaperStyle := '0';
end;
end;
reg.OpenKey('Control Panel\Desktop',false);
reg.WriteString('TileWallpaper', TileWallpaper);
reg.WriteString('WallpaperStyle', WallpaperStyle);
reg.CloseKey;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
PChar(OpenPictureDialog1.FileName), Update);
end;
могу выслать полностью исходник
Muchacho (2004-07-22 22:37:00) [7]Вы уверены что это работает в Windows XP (Delphi 8)? у меня не получилось. Нельзя вызывать эту функцию с такими параметрами
grom (2004-07-16 17:45:00) [8]изменить обои рабочего стола
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
PChar(OpenPictureDialog1.FileName), Update);
взято из рабочей программы