Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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);
взято из рабочей программы


Наверх

Титульная страница Поиск, карта сайта Написать письмо