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

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

Обои на рабочем столе


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;


Наверх

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