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

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

StringToWideChar [D7, XP]


kotbazilio ©   (2007-08-07 15:04:00) 

ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)  as IActiveDesktop;
 ActiveDesktop.SetWallpaper('c:\wallpaper.html', 0);
 ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);

такой код работает

 p: pwidechar;
 s: string;

 s := GetCurrentDir+'\wallpaper.html';
 p := StringToWideChar(s,p,255);
 ActiveDesktop := CreateComObject(CLSID_ActiveDesktop)    as IActiveDesktop;
 ActiveDesktop.SetWallpaper(p, 0);
 ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
а такой вызывает ошибку. Где копать?


Котик Б   (2007-08-07 17:04:00) [1]


> MetalFan ©   (07.08.07 17:03) [6]
> > Котик Б   (07.08.07 16:58) [5]
> абсолютно бессмысленный изврат.


Чего треплешься - покажи свой вариант - не стесняйся... тут все свои ;)


MetalFan   (2007-08-07 17:03:00) [2]


> Котик Б   (07.08.07 16:58) [5]

абсолютно бессмысленный изврат.
смотри
> Anatoly Podgoretsky ©   (07.08.07 16:25) [4]

дело говорит ;)


Котик Б   (2007-08-07 16:58:00) [3]


var
 ad: IActiveDesktop;
 fn: TFileName;
 fd: string;
 hr: HRESULT;
 buff: array[byte]of WideChar;
begin
 fn := 'wallpaper.html';
 fd := 'c:\'; //GetCurrentDir();
 fn := IncludeTrailingPathDelimiter(fd) + fn;
 if SysUtils.FileExists(fn)
 then begin
   ad := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
   hr := ad.SetWallpaper(StringToWideChar(fn, @buff, SizeOf(buff)), 0);
   if hr = S_OK
   then hr := ad.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
 end;
end;


Anatoly Podgoretsky   (2007-08-07 16:25:00) [4]

> kotbazilio  (07.08.2007 15:04:00)  [0]

Чем тебя не устраивает WideString, все равно с указателями работать не умеешь, пусть уж Дельфи за тебя работает.


Плохиш   (2007-08-07 15:50:00) [5]

Под переменную p надо выделить память, о чём в справке и написано.


kotbazilio   (2007-08-07 15:09:00) [6]

Access violation at adress... Process stop


Плохиш   (2007-08-07 15:07:00) [7]


> а такой вызывает ошибку. Где копать?

Копать в описании ошибки.


Наверх

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