Zmiana tapety - rozwiązanie ?

0

napisałem (czy też rozbudowałem) program oparty o funkcję
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "ścieżka", SPIF_UPDATEINIFILE);
tzn. ma on za zadanie wylosowanie nazwy tapety z pliku (w którym jest kilka nazw) i ustawienie ją jako tapetę pulpitu.
Osobiście mi się przydaje - nie lubie monotonności - gdyż za każdym włączeniem komputera zmienia mi się tapetka.
Ale jest jeden "zonk". Funkcja ta obsługuje tylko format windowsowej bitmapy (BMP). Czytałem gdzieś, że jest możliwość obsłużenia innych formatów, ale trzeba odpowiednich bibliotek. A może jest jeszcze inny sposób ? Czy ktoś wie może co zrobić w takiej sytuacji ? (jeżeli tak to proszę o namiary i sposób tego wykonania). Z góry dzięki za odpowiedź (mój pierwsz post :])

0

Zmiany które robi ta funkcja odnoszą się do zwykłego pliczku win.ini. Niestety nie wiadomo (mi) dlaczego zapisywane są tam tylko ścieżki do tapet z rozszeżeniem bmp, tak więc tą funkcją nic nie załatwisz jeżeli chcesz mieć jpg na tapecie. Można to jednak zrobić za pomocą rejestru. Scieżka: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General
i tam masz klucz Wallpaper. On odnosi się również do jpg. Rejestr umiesz programowo zmieniać?

0

jasne :], próbowalem już w rejestrze ale w kluczu
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
tego nie próbowałem :]

niestety ten sam problem, ONLY BMP, a jeżeli ty nadal uważasz że osługuje JPG to zaprezentuj może programowy przykład
tutaj moje rozwiązanie:

TRegistry& klucz = *new TRegistry();
klucz.OpenKey("\\Software\\Microsoft\\Internet Explorer\\Desktop\\General",true);

    try
        {klucz.WriteString("Wallpaper",tab);}
    catch(...){}

delete &klucz;

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL,SPIF_SENDCHANGE);

// gdzie tab to nazwa tapety

1 użytkowników online, w tym zalogowanych: 0, gości: 1