![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с функцией StringToWideChar
ЛенаК © (2002-05-21 09:54:00)Есть следующий код:
var
AD: IActiveDesktop;
name : PWideChar;
MasFile : array of string;
// пытаюсь поменять обои на рабочем столе, взяв файл с рисунком для этого из массива
setlength(Masfile,1);
MasFile[0]:="ris.bmp";
name:=StringToWideChar(MasFile[0],name,1);
AD:=CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
AD.SetWallpaper(name,0);
AD.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
Никаких сообщений не выдаётся, но AD.SetWallpaper(name,0); не срабатывает. Если написать так: AD.SetWallpaper("ris.bmp",0); то всё работает. Я подозреваю, что неправильно указываю какие-то параметры в StringToWideChar и она возвращает неправильное имя.
Как это побороть? Спасибо.
Shaman_Naydak (2002-05-21 14:27:00) [1]name:=StringToWideChar(MasFile[0],name, 1);
Последнюю единичку видишь? Ты один символ копируешь
Объяви Name: WideString и просто присвой
А то у тебя еще и AccessViolation всплывет.. так как ты память не выделил