Подскажите, что нужно дописать, что бы каринку вставить из Image1 ?

программирование Delphi delphi7

Подскажите, что нужно дописать, что бы каринку вставить из Image1 ?

procedure ChangeWallpaper;
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
ActiveDesktop: IActiveDesktop;
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop )
as IActiveDesktop;
ActiveDesktop.SetWallpaper(ТУТ НУЖНО ВСТАВИТЬ картинку из Image1, 0);
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;

procedure TForm1.Button1Click(Sender: TObject);
var bmp:TBitmap;
begin
bmp := TBitmap.Create;
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
BitBlt(bmp.Canvas.Handle, 0,0, Screen.Width, Screen.Height,
GetDC(0), 0,0,SRCCOPY);
Image1.Width := Screen.Width;
Image1.Height := Screen.Height;
Image1.Picture.Assign(bmp);
bmp.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ChangeWallpaper;
end;

Примечание:
Werewolf, благодарствую. Сохранить и загрузить это я и сам знал. Я думал можно как то проще, зачем сохранять, потом загружать, если изображение в принципе выводится и храниться в компоненте Image1 :D

100 лет не прогал, да еще основы хреного знаю, думал может переменная какая есть, как на цифры-текст только на изображение :D

Примечание:
Ах, да. Насколько я понимаю, что бы сохранить это проге нужен будет запуск от администратора.. Сраные семерки с 8-ками пошли... )
Ответы:
Параметр pwszWallpaper у IActiveDesktop::SetWallpaper - это строка - имя файла, для использования его (файла с изображением) в качестве фона рабочего стола.
Значит, нужно вначале сохранить изображение в файл - можно так: Image1.Picture.SaveToFile('c:\newWallpaper.bmp');
после чего передать тоже имя в IActiveDesktop::SetWallpaper так:
ActiveDesktop.SetWallpaper('c:\newWallpaper.bmp', 0);


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.