Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
4-1091029105
Anik
2004-07-28 19:38
2004.09.12
Как достать из JPEG Exif через Windows API?


1-1093390412
массив
2004-08-25 03:33
2004.09.12
Ищу функции преобразования текста в паскалевые строчки и обратно


1-1093375510
VZup
2004-08-24 23:25
2004.09.12
Круглые SpeedButton


14-1093436613
Darthman
2004-08-25 16:23
2004.09.12
Набираю людей (Надо один-два) для написания IDE для языка прогр.


14-1092922960
SMT
2004-08-19 17:42
2004.09.12
Четкие изображения экрана в Help-файле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский