Une question concernant cette fonction : SetWindowsHookEx...
Je cherche à la faire fonctionner avec le premier paramètre réglé à
WH_CBT...
La fonction renvoie un handle (de hook) correct... mais la fonction de
rappel, elle, ne reçoit pas de message...
Du moins, elle reçoit UN message (celui qui correspond à l'ouverture d'une
fenêtre de mon application)...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit
située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
Serait-ce un problème de droit (si oui, je n'ai pas trouver de document sur
le sujet... y compris dans msdn.microsoft.com) ?
Remarque complémentaire... si j'utilise SetWindowsHookEx en passant
WH_KEYBOARD_LL (ou WH_KEYBOARD) ça marche bien : ma fonction de rappel est
effectivement .... rappelée.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
news.wanadoo.fr wrote:
Je cherche à la faire fonctionner avec le premier paramètre réglé à WH_CBT...
La fonction renvoie un handle (de hook) correct... mais la fonction de rappel, elle, ne reçoit pas de message... Du moins, elle reçoit UN message (celui qui correspond à l'ouverture d'une fenêtre de mon application)...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
Voir thread récent de "cyan", où, après une petite correction, l'exemple marchait correctement...
news.wanadoo.fr wrote:
Je cherche à la faire fonctionner avec le premier paramètre réglé à
WH_CBT...
La fonction renvoie un handle (de hook) correct... mais la fonction de
rappel, elle, ne reçoit pas de message...
Du moins, elle reçoit UN message (celui qui correspond à l'ouverture d'une
fenêtre de mon application)...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit
située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
Voir thread récent de "cyan", où, après une petite correction, l'exemple
marchait correctement...
Je cherche à la faire fonctionner avec le premier paramètre réglé à WH_CBT...
La fonction renvoie un handle (de hook) correct... mais la fonction de rappel, elle, ne reçoit pas de message... Du moins, elle reçoit UN message (celui qui correspond à l'ouverture d'une fenêtre de mon application)...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
Voir thread récent de "cyan", où, après une petite correction, l'exemple marchait correctement...
François
>> Je cherche à la faire fonctionner avec le premier paramètre réglé à WH_CBT... La fonction renvoie un handle (de hook) correct... mais la fonction de rappel, elle, ne reçoit pas de message...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
C.Astor dit : Voir thread récent de "cyan", où, après une petite correction, l'exemple marchait correctement...
Merci pour votre réponse rapide,
Je viens d'y jeter un oeil et on y parle effectivement de cette fonction avec le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font pas partie de mon application)... Dans le 'thread de cyan', il est fait usage de GetCurrentThreadId() ... et, ça, ça ne m'intèresse pas; du moins dans le cas qui me préoccupe.
>> Je cherche à la faire fonctionner avec le premier paramètre réglé à
WH_CBT...
La fonction renvoie un handle (de hook) correct... mais la fonction de
rappel, elle, ne reçoit pas de message...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit
située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
C.Astor dit :
Voir thread récent de "cyan", où, après une petite correction, l'exemple
marchait correctement...
Merci pour votre réponse rapide,
Je viens d'y jeter un oeil et on y parle effectivement de cette fonction
avec
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais
capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font
pas partie de mon application)... Dans le 'thread de cyan', il est fait
usage
de GetCurrentThreadId() ... et, ça, ça ne m'intèresse pas; du moins dans
le cas qui me préoccupe.
>> Je cherche à la faire fonctionner avec le premier paramètre réglé à WH_CBT... La fonction renvoie un handle (de hook) correct... mais la fonction de rappel, elle, ne reçoit pas de message...
Que la fonction de rappel indiquée dans l'appel à SetWindowsHookEx soit située dans mon EXE ou dans une DLL, le résultat est le même...
J'utilise Borland C++ Builder 6...
Avez-vous réussi à faire fonctionner cette fonction dans ce contexte ?
C.Astor dit : Voir thread récent de "cyan", où, après une petite correction, l'exemple marchait correctement...
Merci pour votre réponse rapide,
Je viens d'y jeter un oeil et on y parle effectivement de cette fonction avec le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font pas partie de mon application)... Dans le 'thread de cyan', il est fait usage de GetCurrentThreadId() ... et, ça, ça ne m'intèresse pas; du moins dans le cas qui me préoccupe.
Christian ASTOR
François wrote:
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font pas partie de mon application)... Dans le 'thread de cyan', il est fait usage de GetCurrentThreadId()
Il suffit de mettre NULL à la place.
François wrote:
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais
capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font
pas partie de mon application)... Dans le 'thread de cyan', il est fait
usage de GetCurrentThreadId()
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font pas partie de mon application)... Dans le 'thread de cyan', il est fait usage de GetCurrentThreadId()
Il suffit de mettre NULL à la place.
François
>From: "Christian ASTOR" François wrote:
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font pas partie de mon application)... Dans le 'thread de cyan', il est fait usage de GetCurrentThreadId()
Il suffit de mettre NULL à la place.
Oui, je sais ... et c'est justement ce qui semble ne pas fonctionner...
Quand je remplace WH_CBT par WH_KEYBOARD_LL ... (et que j'appelle la fonction de rappel qui va bien, bien sûr). ça fonctionne...
Je vais essayer sur un windows 'neuf' car je me demande si finalement il pourrait pas y avoir une appli. mal développée qui filtrerait déjà les Hooks.. avec le paramètre WH_CBT (par exemple, une fonction qui ne ferait pas de CallNextHookEx...) ...
Merci,
F.Otho
>From: "Christian ASTOR" <castorix@club-internet.fr>
François wrote:
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais
capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne
font
pas partie de mon application)... Dans le 'thread de cyan', il est fait
usage de GetCurrentThreadId()
Il suffit de mettre NULL à la place.
Oui, je sais ... et c'est justement ce qui semble ne pas fonctionner...
Quand je remplace WH_CBT par WH_KEYBOARD_LL ... (et que j'appelle la
fonction de rappel qui va bien, bien sûr). ça fonctionne...
Je vais essayer sur un windows 'neuf' car je me demande si finalement il
pourrait pas y avoir une appli. mal développée qui filtrerait déjà les
Hooks.. avec le paramètre WH_CBT (par exemple, une fonction qui ne ferait
pas de CallNextHookEx...) ...
le paramètre (WH_CBT) mais j'ai, peut-être, oublié de dire que je voulais capt(ur)er les messages de TOUTES les fenêtres (y compris celle qui ne font pas partie de mon application)... Dans le 'thread de cyan', il est fait usage de GetCurrentThreadId()
Il suffit de mettre NULL à la place.
Oui, je sais ... et c'est justement ce qui semble ne pas fonctionner...
Quand je remplace WH_CBT par WH_KEYBOARD_LL ... (et que j'appelle la fonction de rappel qui va bien, bien sûr). ça fonctionne...
Je vais essayer sur un windows 'neuf' car je me demande si finalement il pourrait pas y avoir une appli. mal développée qui filtrerait déjà les Hooks.. avec le paramètre WH_CBT (par exemple, une fonction qui ne ferait pas de CallNextHookEx...) ...