Veröffentlicht 11. Dezember 200618 j ... bringe ich Windows dazu Änderungen in der Registry, zB. am Arbeitsplatz(Ordner ein ausblenden), zu übernehmen. Also ich Arbeite im Moment an einem Tool um Windowseinstellungen zu Optimieren. Dabei ändere ich aus meinem Projekt heraus die Registryschlüssel. Das Problem ist aber, dass Windows das ja erst mal nicht mitbekommt. Habe es mit dieser Funktion versucht.... BroadcastSystemMessage(BSF_ALLOWSFW, NULL, WM_SETTINGCHANGE, NULL, NULL); LPITEMIDLIST pidlDesktop, pidlMyComputer; SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidlDesktop); SHGetSpecialFolderLocation(NULL, CSIDL_DRIVES, &pidlMyComputer); SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST|SHCNF_FLUSH, pidlDesktop, 0); SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST|SHCNF_FLUSH, pidlMyComputer,0); [/PHP] So, das Funktioniert schon für den Arbeitsplatz, wenn ich Laufwerke ein und ausblande, aber für den Dektop nur wenn ich Ordner einblende. Beim ausblenden muss ich auf den Desktop gehen und F5 drücken. Wie kann ich das umgehen das ich das nicht machen muss. Hätte da jemand ne Idee. Weiter gibt es auch noch Änderungen, welche nur Desktopeinstellungen beinhalten, zB. wenn ich das FonSmoothing an und ausschalten will. Welche Nachricht muss ich ans System senden, damit es sich refreshed? Benutze WinXp SP2, VS2005 C++ MFC Danke schon mal für Eure Antworten und schönen Tag. :-)
8. Januar 200718 j Einige Sachen werden ohne Reboot nicht übernommen, F5 könnte man umgehen indem man ein Invalidate() bzw Refresh Request an dein Window sendet... Unter Vista wirst Du den größten Teil davon vergessen können
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.