Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

Kак изменить рисунок рабочего стола Windows XP?   Найти похожие ветки 

 
Muchacho   (2004-07-16 14:39) [0]

Kак изменить рисунок рабочего стола Windows XP?


 
grom   (2004-07-16 17:45) [1]

изменить обои рабочего стола
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
                     PChar(OpenPictureDialog1.FileName), Update);
взято из рабочей программы


 
Muchacho   (2004-07-22 22:37) [2]

Вы уверены что это работает в Windows XP (Delphi 8)? у меня не получилось. Нельзя вызывать эту функцию с такими параметрами


 
grom   (2004-07-22 23:30) [3]

это работает в 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;
могу выслать полностью исходник


 
Alex#abc   (2004-07-23 09:36) [4]

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.


 
Muchacho   (2004-07-23 17:56) [5]

сделал как сказал Alex#abc , все как-будто нормально, записывает в реестр тоже, но только не обновляется. В чем проблема по-вашему?


 
Alex#abc   (2004-07-26 09:44) [6]

У меня была тажа проблема связанная с Active DeskTop, как пишут умные люди, вся проблема в строке:

SystemParametersInfo(SPI_SETDESKWALLPAPER,0,NIL,(SPIF_SENDWININICHANGE+SPIF_UPDATEINIFILE));

А точнее в ее последнем параметре (взято из работающей программы (полный текст  смотри в прошом послании))


 
Alex#abc   (2004-07-26 09:45) [7]

PS
в 2000 работает как часы!


 
Muchacho   (2004-07-26 21:05) [8]

Спасибо вам, но это работает только для формата бмп. Если  пользователь выбират рисунок jpeg в окне свойства экрана, XP переобразует его в бмп, сохраняет как
Documents and Settings\User\Local Settings\Application Data\Microsoft\wallpaper1.bmp
и записывает в реестр соответствуюшие пути.
Я в программе переобразовал jpeg в bmp, но тогда качество заметно ухудшается. Подскажите пожалуюста, что сделать?



Страницы: 1 вся ветка

Текущий архив: 2004.09.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
3-1092728279
Марат
2004-08-17 11:37
2004.09.12
Ошибка в процедуре


14-1093501856
zamkom
2004-08-26 10:30
2004.09.12
Шифрование папки


1-1093816829
RaPToR_1
2004-08-30 02:00
2004.09.12
узнать hwnd


14-1092980992
Real
2004-08-20 09:49
2004.09.12
Библия - 2


1-1093370651
Schummi
2004-08-24 22:04
2004.09.12
Вопрос про package