Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Проблема со сменой обоев.


Автор: anton_misa 11.5.2003, 12:33
Данный код выдает ошибку, что мол нет такого файла (pth), который точно имется.
ActiveDesktop включен. Данный код писал в обычной проге, в .cpl апплете и dll, все одно и тоже.
Система W2K, тестирую под root'ом.
Подскажите в чем может быть проблемка?

String pth = "****";
bool res = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, &pth, (SPIF_SENDWININICHANGE +

SPIF_UPDATEINIFILE));
DWORD err = GetLastError();
HLOCAL hlocal = NULL;
bool fok = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,

NULL,
err, 0, (LPTSTR) &hlocal, 0, NULL);

if (hlocal != NULL) {ShowMessage((PCTSTR)hlocal);}
else {ShowMessage("Error number not found");}

Автор: shedon 12.5.2003, 10:50
Попробуй написать
String pth = _T("****");

Автор: aMiGo! 12.5.2003, 18:57
ты указываешь адрес pth. (&pth)

Надо так...
Код
String pth = "****";
(void*)pth.c_str();


Не проверял, но вроде должна работать.


shedon, что это за такая функция _T()?

Автор: DENNN 12.5.2003, 19:54
Цитата
что это за такая функция _T()?

Преобразует строку в ANSI либо в UNICODE в зависимости от настроек компилятора.

Автор: anton_misa 16.5.2003, 09:31
Такой код позволяет устанавливать обои только bmp формата. При попытке установить jpg сообщает, что

"Операция выполнена успешно", но изменений нет, ПОЧЕМУ? Может кто подскажет...

pth = "*****";
bool res = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void *)pth.c_str(), SPIF_SENDWININICHANGE |

SPIF_UPDATEINIFILE);
DWORD err = GetLastError();
HLOCAL hlocal = NULL;
bool fok = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,

NULL,
err, 0, (LPTSTR) &hlocal, 0, NULL);

if (hlocal != NULL) {Application->MessageBox((PCTSTR)hlocal,"Error", MB_OK);}
else {Application->MessageBox("Error number not found", "Error", MB_OK);}

Автор: Baa 16.5.2003, 15:20
anton_misa, НЕ бмп ставится токо с включенным актив десктопом... тут уже было нечто подобное... кто-то стучался до рабочего стола через ком интерфейс.

Автор: anton_misa 16.5.2003, 18:18
Ты читай сначала до конца !!! Он включен !!!

Автор: anton_misa 18.5.2003, 09:48
Может хотя бы идею кто-нидь выдвинет...

Автор: aMiGo! 19.5.2003, 19:44
Ребят, а разве как я предлогал не работает /*(void*)pth.c_str();*/
Лично у меня все круто.
Простите, если глупые вещи говорю...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)