![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обои на рабочем столе
batya-x © (2008-08-15 20:54:00)не хочер работать следующий код без формы
program wallpaper;
uses
SysUtils, ComObj, ShlObj;
Procedure Change;
const
Desktop: TGuid='{75048700-EF1F-11D0-9888-006097DEACF9}'; //для получения доступа к рабочему столу
var
ActiveDeskTop:IActiveDesktop; // вроде понятно, зачем
begin
ActiveDesktop:=CreateComObject(Desktop) as IActiveDesktop; //создаем объект и получаем разрешение доступа к рабочему столу
ActiveDesktop.SetWallpaper(StringToOleStr('c:/1.jpeg'), 0); // определились с выбором картинки
ActiveDesktop.ApplyChanges(AD_APPLY_ALL); // применяем картинку на рабочем столе
end;
begin
Change
end.
Ошибка при выполнении
Project wallpaper.exe raised exception class EOleSysError with message не был произведён вызов CoInitialize
если добавить форму, и на клик кнопки поставить change всё работает
Германн (2008-08-15 22:25:00) [1]
> batya-x (15.08.08 21:28) [3]
>
>
> > Вызови сначала, а потом CoUninitialize;
>
> не понял
>
Тупой, ещё тупее?
CoInitialize + F1.
batya-x (2008-08-15 21:28:00) [2]
> Вызови сначала, а потом CoUninitialize;
не понял
Германн (2008-08-15 21:15:00) [3]Опередил, зараза :)
ASMSoft (2008-08-15 21:12:00) [4]> [0] batya-x (15.08.08 20:54)
> не хочер работать следующий код без формы
Ответ в твоем же посте
> не был произведён вызов CoInitialize
Вызови сначала, а потом CoUninitialize;