Registry aktualisieren



  • maaaaaaaahlzeit

    ne frage
    wenn ich ein eintrag in der registry aender, wie kann ich windows sagen das der diese neu einlesen soll ? n systemneustart faellt weg da es bei jeden systemstart neu beschrieben wird

    da musses doch was geben - jemand n tipp fuer mich ?



  • Um was für einen Eintrag handelt es sich denn???
    Normalerweise muss Windows nix neu einlesen...



  • das wallpaper
    ich will das bei jeden systemstart das wallpaper neu gesetzt wird

    SystemParametersInfo reicht nicht da es nur jpg dateien sind
    und ActiveDesktop bekomm ich nicht aktiv im source {anderer thread} darum dachte ich daran den registry eintrag zu aendern

    wenn ich das mach muss ich jedesmal kurz bei eigenschaften von anzeige rein und nochmal bestaetigen eh es wirksam wird

    ich dachte auch am temporaeres abspeichern des jpg bildes als bmp, nur das klappt nicht so wirklich -
    CImage::Save will nicht so recht - akzeptiert des BMP parameter nicht, als wuerde er es nicht kennen



  • Naja... das Wallpaper setzt man mit
    SystemParametersInfo und SPI_SETDESKWALLPAPER
    !

    Und ich verstehe nicht ganz was ein setze via Registry bringen soll, wenn es via "SystemParametersInfo" nicht klappt!?



  • das weiss ich, nur das kann nur BMP dateien, ich hab aber ausschliesslich JPG datein zu setzen

    also SystemParameterInfo klappt schon, nur bringt mir nix /=



  • Mr Evil schrieb:

    das weiss ich, nur das kann nur BMP dateien, ich hab aber ausschliesslich JPG datein zu setzen

    Und was hilft Dir da die Registry?????



  • wenn ich in der registry nachschau - ist dort der eintrag fuer die jpg datei, wenn ich das aender und regedit zumach
    muss ich noch in den einstellungen aufklappen und kurz ok klicken, dann ist das neue bild drinn welches in in der regg eingetragen hab



  • Dann sende doch mal ein WM_SETTINGCHANGE weg... möglicherweise wird dann der Hintergrund neu geladen...



  • ::PostMessage(::GetDesktopWindow(), WM_SETTINGCHANGE, NULL, NULL);
    

    funktioniert nicht, also bewirkt keine aenderung

    leider



  • Du solltest Dir natürlich schon die Mühe machen und die Doku zu dieser Nachricht lesen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Aber, weil heute alle irgendwie Faul sind (sorry):

    Applications should send WM_SETTINGCHANGE to all top-level windows when they make changes to system parameters. (This message cannot be sent directly to a window.) To send the WM_SETTINGCHANGE message to all top-level windows, use the SendMessageTimeout function with the hwnd parameter set to HWND_BROADCAST.



  • Ohne ActiveDesktop kann Windows IMVHO keine anderen Bilder als Bitmaps als Hintergrund verwenden.

    Greetz, Swordfish



  • huch, ich hab die seite in der MSDN auf gehabt, aber das irgendwie ueberlesen - danke dir werds mal proben

    wenn das klappt kann ich das activedesktop aus den anderen thread {erstmal} vergessen #gg



  • SendMessageTimeout( HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, SMTO_ABORTIFHUNG, 15, 0 );
    

    funktioniert nicht, das desktop wird nicht aktualisiert, ich muesste jetzt kurz in den settings und ok damits geht


Anmelden zum Antworten