Hook wird nicht gesetzt, wieso?



  • nein, das ist es auch nicht. habs schon versucht. passiert trotzdem nichts.



  • Du übergibst eine process ID wo du eine thread ID übergeben solltest.
    Bissi MSDN gucken schadet meist nicht.



  • also mit GetThreadId(), ok werds zu hause mal ausprobieren, danke.

    Gruß Tobi.


  • Mod

    Ich sehe keinen Fehler in Deinem Code.

    Ich bin mir nichtganz sicher was hustbaer meint.
    Du besorgst Dir korrekt die Process ID des Fensters.

    Was ich allerdings nicht sehe:
    Um einen globalen Hook zu installieren muss auch die hHook Information an den anderen Prozess über shared memory weitergeben werden. So kann das nicht gehen!



  • Martin Richter schrieb:

    Ich bin mir nichtganz sicher was hustbaer meint.
    Du besorgst Dir korrekt die Process ID des Fensters.

    Also er verwendet SetWindowsHookEx. Die Doku zu SetWindowsHookEx sagt der letzte Parameter ist ne thread ID, nicht eine process ID.
    Ich denke schon dass das nen Unterschied macht... nicht?

    Auf jeden Fall wüsste ich nicht wieso das gehen sollte/müsste wenn man eine process ID anstelle einer thread ID übergibt.



  • Frage: ein process kann doch mehrere threads haben, dem zu folge auch mehrere threadIDs, welche nemm ich?


  • Mod

    hustbaer schrieb:

    Martin Richter schrieb:

    Ich bin mir nichtganz sicher was hustbaer meint.
    Du besorgst Dir korrekt die Process ID des Fensters.

    Also er verwendet SetWindowsHookEx. Die Doku zu SetWindowsHookEx sagt der letzte Parameter ist ne thread ID, nicht eine process ID.
    Ich denke schon dass das nen Unterschied macht... nicht?

    Auf jeden Fall wüsste ich nicht wieso das gehen sollte/müsste wenn man eine process ID anstelle einer thread ID übergibt.

    Du hast recht. Ich war auf dem Holzweg. Tut mir leid für die Fehlinfo...



  • meine frage ??!"!!



  • T0bi schrieb:

    Frage: ein process kann doch mehrere threads haben, dem zu folge auch mehrere threadIDs, welche nemm ich?

    Ich würde es mal mit der ID des Threads versuchen der die Nachrichten des Fensters abarbeitet an dem du interessiert bist.

    Das ist im übrigen der Returnwert von GetWindowThreadProcessId, also so:

    //GetWindowThreadProcessId( hWnd, &dwProcessID ); 
    dwThreadID = GetWindowThreadProcessId( hWnd, 0 );
    

    Der Hook gilt dann aber natürlich auch nur für den einen Thread, für einen ganzen Prozess geht es nicht - entweder global (alle Threads, alle Prozesse) oder nur für einen Thread.



  • ok so hab ich das auch schon ausprobiert.... hat aber immer noch nicht funktioniert.
    Wieso geht das nicht 😡 😡 😡

    Gruß Tobi.



  • *schieb* also wieso genau klappt das net?


Anmelden zum Antworten