Ganz oben Malen



  • hm, dann wärs ja aber über allen anderen fenster, es soll ja aber nur praktisch im hintergrundbild sein...



  • dann hack dich doch in den explorer prozess ein (dll injezieren) und das desktop fenster subclassen und WM_PAINT behandeln.



  • sorry, versteh ich nicht so ganz, also ich kann ja nicht einfach mit SetWindowLong die WndProc ändern, ist ja in externen prozessen nicht erlaubt. was meinst du mit dll injezieren?



  • google?



  • sorry wenn ich nerve ^^

    Es gibt mehrere Möglichkeiten.. die 2 gängigsten:

    1. einen Message-Hook für einen bestimmten Thread (von dem Prozess in den du die Dll injezieren willst), dann eine WM_NULL Message an den Thread schicken. Dadurch ladet Windows deine Hook-Dll in den Prozessraum des betroffenen Prozesses -> Injektion erfolgreich

    2. Mittels CreateRemoteThread einen Thread in einem fremden Prozess erzeugen. Hinweis: CreateRemoteThread funktioniert nur auf NT-Systemen!

    das hab ich gefunden, versteh aber beides nicht zu 100%. kann mir einer erklären welche methode hier besser ist, und wenn ja, wie ich sie anwenden muss?

    MfG, Herr-Vorragend



  • Würde das net gehen wenn du einfach mit GetDesktopWindow() ein Handle auf den Desktop besorgst und dann reinmalst?



  • hab ich auch schon probiert, es wird aber bei mir nichts angezeigt. ist ja auch irgendwo klar, weil der desktop ja andauernd WM_PAINT nachrichten bekommt und dann is meins ja weg.



  • Fenster mit WS_EX_NOACTIVATE und WS_EX_TOPMOST erstellen.
    Ersteres sorgt dafür, das dein Fenster nie den Fokus erhält.
    Letzteres dafür das über den anderen Fenstern ist.
    Falls Du noch transparenz willst, würde ich WS_EX_LAYERED noch dazupacken und mit
    SetLayeredWindowAttributes() die Farbe die transparent werden soll setzen...
    Man müsste dann nur noch die Klicks an tieferliegende Fenster "weiterleiten" 😉



  • danke, hast mich auf die richtige idee gebracht, und zwar wollte ich eigentlich genau das gegenteil von WS_EX_TOPMOST, also hab ich HWND_BOTTOM bei SetWindowPos genommen 😉


Anmelden zum Antworten