warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009
-
5 févr. 2006 à 16:28
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
6 févr. 2006 à 17:33
Bijour
je cherche a detectet et simuler par la suite un clic de sourie.
donc je pensais recuperer les coordonées de la sourie a chaque clic ainsi que le temps passé entre les clic
le probleme est que j'arrive avec .net à les detecter dans la form mais ce qui m'interesse c'est de detecter ces clic et recuperer ces coordonées or de la form... par exemple sur le bureau
donc je pense qu'on doit passer par les api. mais je suis pas trop opte avec les api. ..
je suis sur que quelqu'un a deja posé la question mais la fonction recherche ne semble pas marcher aujourd(hui...
donc voila un petit peu d'aide? :)
au fait connaissez vous un bon site avec pleins de fonctions des api repertoriées?
la société de consommation porte mal son nom car un con fait rarement une sommation avant de dire une connerie en société
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 5 févr. 2006 à 16:51
Salut,
Pour monitorer les messages non destinés à l'application, il faut mettre en place un hook global (system-wide hook).
En général ça nécessite du code non managé, mais dans ton cas tu devrais pouvoir t'en sortir sans, juste en utilisant SetWindowsHookEx avec WM_MOUSE_LL.
Le meilleur site sur les APIs reste encore la section Win32 and COM Development dans la MSDN Library :-)
On peut aussi citer le site PInvoke.net qui est bien pratique pour les définitions des imports dans le code managé.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 5 févr. 2006 à 17:03
Salut, oui soit un LowLevelMouseHook, soit pour une application multimédia DirectInput en mode background. Pour simuler un clique de souris y'a la fonctions mouse_event ou SendInput qui est plus compliquée. Le mieux pour connaitre l'API Win32 c'est encore d'installer le Platforme SDK.
warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009 6 févr. 2006 à 09:50
en fait je suis allé voir ton site coq
excellent ce site!
voila ce que j'ai lu
This will enable you to install application hooks. However, you cannot implement global hooks in Microsoft .NET Framework. To install a global hook, a hook must have a native dynamic-link library (DLL) export to inject itself in another process that requires a valid, consistent function to call into. This requires a DLL export, which .NET Framework does not support. Managed code has no concept of a consistent value for a function pointer because these function pointers are proxies that are built dynamically.
donc si je comprend bien dans tuos les cas, vu que je suis en code managé, meme avec un hook je ne pourrai pas "capturer" les events de la sourie or de l'appli ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 6 févr. 2006 à 11:51
Ah vi je confirme pour l'effet C++ : )
Par contre je ne vois pas trop l'interêt de passer par une DLL en C/C++ alors que le hook WH_MOUSE_LL peut être totalement codé en C# malgré ce que dit Microsoft !
Global hooks are not supported in the .NET Framework Except for the WH_KEYBOARD_LL low-level hook and the WH_MOUSE_LL low-level hook, you cannot implement global hooks in the Microsoft .NET Framework. To install a global hook, a hook must have a native DLL export to inject itself in another process that requires a valid, consistent function to call into. This behavior requires a DLL export. The .NET Framework does not support DLL exports. Managed code has no concept of a consistent value for a function pointer because these function pointers are proxies that are built dynamically.
Low-level hook procedures are called on the thread that installed the hook. Low-level hooks do not require that the hook procedure be implemented in a DLL.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 6 févr. 2006 à 12:37
Je connais cette page, oui ils l'ont dit, mais après que les exemples ce soit multipliés sur le net : )
La doc le disait quand même mais fallait comprendre : "the WH_MOUSE_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event."
Je connais bien aussi ton hook en C, je l'avais étudié à l'époque : )
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 6 févr. 2006 à 13:19
Concernant les exemples, je ne pense pas que ce soit lié à l'info, mais plutôt au fait que le seul "problème" avec les WH_*_LL est qu'ils nécessitent du NT.
Hors "à l'époque", le parc Win98 était encore relativement important, dans le sens qu'il fallait souvent en tenir compte lors du développement.
Maintenant je pense que la donne à bien changer, même si il doit rester pas mal de Win 98 en circulation.
:-)
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 6 févr. 2006 à 17:33
Oui je me doute bien, mais je disais ça dans le sens qu'on s'en soucie probablement beaucoup moins lors de la conception.
En gros : "Si ils ne peuvent pas l'utiliser, tant pis !" (je ne parle évidemment pas des cas des développements "à la carte")