![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
> а такой вызывает ошибку. Где копать?
Копать в описании ошибки.