Wie kann ich mit Code F5 Refesh ausführen



  • Hallo
    Ich habe folgesdes ausprobiert,
    geht leider nicht.
    UpdateWindow(GetDesktopWindow());
    PostMessage(GetDesktopWindow(), WM_KEYDOWN, VK_F5, 0);

    Hat jemand eine andere Idee.

    Frohe Ostern



  • ats3788 schrieb:

    Hallo
    Ich habe folgesdes ausprobiert,
    geht leider nicht.
    UpdateWindow(GetDesktopWindow());
    PostMessage(GetDesktopWindow(), WM_KEYDOWN, VK_F5, 0);

    Hat jemand eine andere Idee.

    Frohe Ostern

    Yo, auch frohe Ostern. Es wäre hilfreich, wenn du zusätzlich erklären würdest was du überhaupt bezwecken möchtest. Was soll der Code für dich machen? Wäschewaschen, einkaufen, ...? Hab gerade meine Kristallkugel nicht zur Hand, sonst würde ich nicht so blöd fragen.



  • Hallo
    Ich dachte es wäre klar.

    Ich habe ein Handle von einen Explorer
    und möchte anstatt mit der Taste "F5" einen Oberflächen
    Refresh, die mit Code ausführen.

    Ist das verständlicher ?



  • Du könntest dir evtl. ein IShellView Objekt für den Desktop holen, das hat eine Refresh Funktion. Obs tatsächlich geht, weiß ich jetzt aber nicht. Der Aufwand dürfte den Nutzen vermutlich überwiegen.
    Das mit F5 faken dürfte einfacher sein. Versuchs mit SendInput, mit PostMessage funktioniert sowas normalerweise nicht oder zumindest nicht in allen Fällen (Modifier usw.)



  • Der Explorer beinhaltet mehrere ChildWindows. An welchen davon möchtest Du die Message schicken?



  • @Mechanics
    Ja, SendInput ist normalerweise relativ einfach.
    Dummerweise setzt es voraus dass man vorher den Fokus dort hin setzt wo man den Tastendruck empfangen bekommen möchte.
    Was man oft (meistens?) nicht will.

    Weiters ist es nicht unbedingt mega zuverlässig. Es könnte passieren dass das Ändern des Fokus schief geht (foreground lock), und dann geht der Tastendruck an das falsche Fenster. Bzw. theoretisch könnte auch eine andere Anwendung zwischen dem Setzen des Fokus und dem SendInput den Fokus nochmal ändern.

    Ich würde also eher deinen ersten Vorschlag ( IShellView ) empfehlen.



  • hustbaer schrieb:

    @Mechanics
    Ja, SendInput ist normalerweise relativ einfach.
    Dummerweise setzt es voraus dass man vorher den Fokus dort hin setzt wo man den Tastendruck empfangen bekommen möchte.

    Stimmt, das hatte ich irgendwie ausgeblendet.



  • oh ich hatte wohl vergessen zu
    erwähnen , das handel auf das fenster habe ich.

    sewegen dachte ich es geht mit postmessage



  • https://sourceforge.net/projects/sendinputhelper/?source=typ_redirect
    Ich habe das zu "sendinput" gefunden.

    Ist echt mächtig, nur hoffe ich das das anders geht mit einem
    Fenster Handle.



  • ats3788 schrieb:

    oh ich hatte wohl vergessen zu
    erwähnen , das handel auf das fenster habe ich.

    sewegen dachte ich es geht mit postmessage

    Der Explorer besteht aus mehreren Fenster. Das Handle von welchen hast Du?


  • Mod

    ats3788 schrieb:

    https://sourceforge.net/projects/sendinputhelper/?source=typ_redirect
    Ich habe das zu "sendinput" gefunden.

    Ist echt mächtig, nur hoffe ich das das anders geht mit einem
    Fenster Handle.

    Das Ding ist doch nur ein API Wrapper... und mit einem Fensterhandle macht das Ding nix...



  • Hoha ich habe mich noch gar nicht bedankt
    Danke and ie lieben Mitglieder des Forums


Log in to reply