Desktop aktualisieren (F5 simulieren)



  • Habe gerade nochmal gesucht und bin auf RedrawWindow gestoßen.

    Handle to the window to be redrawn. If this parameter is NULL, the desktop window is updated.
    [...]
    When RedrawWindow is used to invalidate part of the desktop window, the desktop window does not receive a WM_PAINT message. To repaint the desktop, an application uses the RDW_ERASE flag to generate a WM_ERASEBKGND message.



  • Wenn du F5 simulieren willst schick doch einfach die Nachricht WM_KEYDOWN and den Explorer mit der Nachricht "F5 wurde gedrückt". Ist nicht das eleganteste aber wenn du es sonst nicht hinkriegst.



  • SHChangeNotify



  • 0rp schrieb:

    SHChangeNotify

    Was hat nun eine Shell Function mit dem Thema zu tun?



  • mhm, shell und desktop
    zwei wirklich unterschiedliche dinge

    (wer sarkasmus findet, kannen behalten)



  • Sag mal könnte uns der Threadstarter mal verraten obs geklapt hat. Wir posten hier neue Lösung für ein Probelm das es scheinbar garnicht mehr gibt.

    Klapts nun ???



  • 0rp schrieb:

    mhm, shell und desktop
    zwei wirklich unterschiedliche dinge

    (wer sarkasmus findet, kannen behalten)

    Sarkasmus ist, eine Shellfunktion zu Posten, ohne dem Fragenden zu Erklären was er damit anstellen soll. So wie flenders eine Funktion gepostet hat mit Link und Zitat ist brauchbar, aber nicht "ein" Wort.

    Also Orp, was kann er mit dieser Funktion anstellen, um sein Problem zu lösen?



  • mit der funktion kann man die shell (also auch den desktop) davon informieren, dass etwas passiert ist

    dass zb ein ordner umbenannt wurde, oder gelöscht, oder ein drive gemountet, oder ein shell namespace registriert wurde

    aber ist es zuviel verlangt, die funktion im msdn nachzuschlagen?



  • Nein es ist nicht zuviel verlangt, im gegenteil so soll es ja sein, aber für
    viele ist eine Shell sowas wie die MSDOS-Eingabe und der Desktop ein Fenster.
    Daher war ja meine Frage was eine Shellfunktion mit dem Desktop zu tun hat,
    Antwort: der Desktop ist ein Ordner wie jeder andere daher kann man auch Shellfunktion an ihm anwenden.

    Aber ich denke mal das ist keine elegante lösung, extra für sowas eine weitere Lib hinzu zu fügen.



  • Antwort: der Desktop ist ein Ordner wie jeder andere daher kann man auch Shellfunktion an ihm anwenden.

    rofl



  • mit shell wird die gesamte grafische benutzeroberfläche bezeichnet

    die shell ist wie ein baum strukturiert, die wurzel ist der desktop

    unter dem desktop ist zb der arbeitsplatz, unter dem die laufwerke, verzeichnisse und dateien sind, eben das was im explorer im linken fenster zusehen ist



  • Wie auch immer, aber für sowas braucht man nicht die shlobj.h usw.

    InvalidateRect(NULL, 0, TRUE);
    

    Könnte vollkommen ausreichen, zumindest bei mir klappt es prima.



  • So,

    habs nochmal mit InvalidateRect(NULL, 0, true) probiert und es geht.
    Hatte es vorher schon einmal getestet, aber mir erst den Handel zurück geben lassen und diesen an Stelle von NULL angegeben.
    Ich denk mal das war der Fehler. Tut mir leid das ich so lange keine Antworten gegeben habe. Hatte nicht mehr mit gerechnet das da noch was kommt. Vielen Dank für eure Mühe.

    Thx Sebastian


Anmelden zum Antworten