begin process at 2012 02 11 12:12:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > HOOK : PB DE COMPATIBILITÉ .NET 1.1 ET 2.0

HOOK : PB DE COMPATIBILITÉ .NET 1.1 ET 2.0


 Information sur la source

Note :
Aucune note
Catégorie :VB.NET Source .NET ( DotNet ) Classé sous :hook, clavier, souris, idletime Niveau :Initié Date de création :03/07/2006 Vu / téléchargé :8 911 / 492

Auteur : TeBeCo

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voici un code de hook Clavier + Souris devellopé en vb.net 1.1 et le même en 2.0
Avant tte remarque du style "ouin ouin ... yen a deja plein"
le but de ce post n'est pas exculsivment de montrer comment on hook mais de mettre a jour et de m'aider à résoudre un soucis a savoir :

Le code .net 1.1 tourne avec VS 2003 fonctionnent bien actuellemnt (XP pro, avec VS 2003 + VS 2005 + framework 1.1 et framework 2.0 installer sur la meme machine), le bouton "Hook/UnHook" met en route une surveillance clavier souris et le timer dans el label indique depuis combien de temps le clavier et la souris n'ont pas été utiliser (il repars a zéro des qu'on y touche) => l'IdleTime en somme. Ceci avec une limite maximal reglable dans le module a la ligne suivante :
        If ((nTickActuel - nTickIdle) / (1000 * 60)) >= 15 Then
ici la limite est donc de 15 minutes

Source

  • Imports System.Runtime.InteropServices
  • Imports System.Reflection
  • Module Hook
  • #Region "APIs"
  • Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Integer) As Integer
  • Private Declare Function SetWindowsHookExClavier Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As HookClavierDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer
  • Private Declare Function SetWindowsHookExSouris Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As HookSourisDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer
  • Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer
  • Private Declare Function CallNextHookExClavier Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As KBDLLHOOKSTRUCT) As Integer
  • Private Declare Function CallNextHookExSouris Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer
  • #End Region
  • #Region "Structures et Constantes"
  • Private Structure POINT
  • Private x As Integer
  • Private y As Integer
  • End Structure
  • Private Structure MSLLHOOKSTRUCT
  • Public pt As POINT
  • Public mouseData As Integer
  • Public flags As Integer
  • Public time As Integer
  • Public dwExtraInfo As Integer
  • End Structure
  • Private Structure KBDLLHOOKSTRUCT
  • Public vkCode As Integer
  • Public scanCode As Integer
  • Public flags As Integer
  • Public time As Integer
  • Public dwExtraInfo As Integer
  • End Structure
  • Private Const HC_ACTION As Integer = 0
  • Private Const WH_KEYBOARD_LL As Integer = 13
  • Private Const WH_MOUSE_LL As Integer = 14
  • #End Region
  • #Region "Delegate"
  • Private Delegate Function HookClavierDelegate(ByVal Code As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
  • Private Delegate Function HookSourisDelegate(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer
  • <MarshalAs(UnmanagedType.FunctionPtr)> Private dlgClavierCallBack As HookClavierDelegate
  • <MarshalAs(UnmanagedType.FunctionPtr)> Private dlgSourisCallBack As HookSourisDelegate
  • #End Region
  • Private hHookClavier As Integer
  • Private hHookSouris As Integer
  • Private WithEvents tmrSeconde As Timers.Timer
  • Private nTickIdle As Integer
  • Public Function Hook() As Boolean
  • Dim hInstance As Integer
  • dlgClavierCallBack = New HookClavierDelegate(AddressOf ClavierCallBack)
  • dlgSourisCallBack = New HookSourisDelegate(AddressOf SourisCallBack)
  • hInstance = Marshal.GetHINSTANCE([Assembly].GetExecutingAssembly.GetModules()(0)).ToInt32
  • hHookClavier = SetWindowsHookExClavier(WH_KEYBOARD_LL, dlgClavierCallBack, hInstance, 0)
  • hHookSouris = SetWindowsHookExSouris(WH_MOUSE_LL, dlgSourisCallBack, hInstance, 0)
  • If ((hHookClavier <> 0) AndAlso (hHookSouris <> 0)) Then
  • tmrSeconde = New Timers.Timer
  • tmrSeconde.AutoReset = True
  • tmrSeconde.Interval = 100
  • nTickIdle = Environment.TickCount
  • tmrSeconde.Start()
  • Return True
  • Else
  • Return False
  • End If
  • End Function
  • Public Sub UnHook()
  • If hHookClavier <> 0 Then
  • UnhookWindowsHookEx(hHookClavier)
  • End If
  • If hHookSouris <> 0 Then
  • UnhookWindowsHookEx(hHookSouris)
  • End If
  • tmrSeconde.Stop()
  • tmrSeconde.Close()
  • hHookClavier = 0
  • hHookSouris = 0
  • dlgClavierCallBack = Nothing
  • dlgSourisCallBack = Nothing
  • tmrSeconde = Nothing
  • End Sub
  • Private Sub tmrSeconde_Elapsed(ByVal sender As Object, ByVal e As Timers.ElapsedEventArgs) Handles tmrSeconde.Elapsed
  • Dim nTickActuel As Integer = Environment.TickCount
  • 'Delai de l'Idle: 20 minute
  • Dim frm As Form1 = CType(Form1.ActiveForm, Form1)
  • frm.Affichage(nTickActuel - nTickIdle)
  • If ((nTickActuel - nTickIdle) / (1000 * 60)) >= 15 Then
  • 'On concidère que l'Idle est suffisant pour declenché le processus
  • UnHook()
  • Stop
  • 'EVENTS()
  • End If
  • End Sub
  • #Region "CallBack"
  • Private Function ClavierCallBack(ByVal Code As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
  • If (Code = HC_ACTION) Then
  • nTickIdle = Environment.TickCount
  • End If
  • Return CallNextHookExClavier(hHookClavier, Code, wParam, lParam)
  • End Function
  • Private Function SourisCallBack(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer
  • If (nCode = HC_ACTION) Then
  • nTickIdle = Environment.TickCount
  • End If
  • Return CallNextHookExSouris(hHookSouris, nCode, wParam, lParam)
  • End Function
  • #End Region
  • End Module
Imports System.Runtime.InteropServices
Imports System.Reflection

Module Hook

#Region "APIs"

    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Integer) As Integer
    Private Declare Function SetWindowsHookExClavier Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As HookClavierDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer
    Private Declare Function SetWindowsHookExSouris Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As HookSourisDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer
    Private Declare Function CallNextHookExClavier Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As KBDLLHOOKSTRUCT) As Integer
    Private Declare Function CallNextHookExSouris Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer

#End Region

#Region "Structures et Constantes"

    Private Structure POINT
        Private x As Integer
        Private y As Integer
    End Structure
    Private Structure MSLLHOOKSTRUCT
        Public pt As POINT
        Public mouseData As Integer
        Public flags As Integer
        Public time As Integer
        Public dwExtraInfo As Integer
    End Structure
    Private Structure KBDLLHOOKSTRUCT
        Public vkCode As Integer
        Public scanCode As Integer
        Public flags As Integer
        Public time As Integer
        Public dwExtraInfo As Integer
    End Structure
    Private Const HC_ACTION As Integer = 0
    Private Const WH_KEYBOARD_LL As Integer = 13
    Private Const WH_MOUSE_LL As Integer = 14

#End Region

#Region "Delegate"

    Private Delegate Function HookClavierDelegate(ByVal Code As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
    Private Delegate Function HookSourisDelegate(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer
    <MarshalAs(UnmanagedType.FunctionPtr)> Private dlgClavierCallBack As HookClavierDelegate
    <MarshalAs(UnmanagedType.FunctionPtr)> Private dlgSourisCallBack As HookSourisDelegate

#End Region

    Private hHookClavier As Integer
    Private hHookSouris As Integer
    Private WithEvents tmrSeconde As Timers.Timer
    Private nTickIdle As Integer

    Public Function Hook() As Boolean
        Dim hInstance As Integer

        dlgClavierCallBack = New HookClavierDelegate(AddressOf ClavierCallBack)
        dlgSourisCallBack = New HookSourisDelegate(AddressOf SourisCallBack)

        hInstance = Marshal.GetHINSTANCE([Assembly].GetExecutingAssembly.GetModules()(0)).ToInt32

        hHookClavier = SetWindowsHookExClavier(WH_KEYBOARD_LL, dlgClavierCallBack, hInstance, 0)
        hHookSouris = SetWindowsHookExSouris(WH_MOUSE_LL, dlgSourisCallBack, hInstance, 0)

        If ((hHookClavier <> 0) AndAlso (hHookSouris <> 0)) Then
            tmrSeconde = New Timers.Timer
            tmrSeconde.AutoReset = True
            tmrSeconde.Interval = 100
            nTickIdle = Environment.TickCount
            tmrSeconde.Start()
            Return True
        Else
            Return False
        End If
    End Function

    Public Sub UnHook()
        If hHookClavier <> 0 Then
            UnhookWindowsHookEx(hHookClavier)
        End If
        If hHookSouris <> 0 Then
            UnhookWindowsHookEx(hHookSouris)
        End If

        tmrSeconde.Stop()
        tmrSeconde.Close()

        hHookClavier = 0
        hHookSouris = 0

        dlgClavierCallBack = Nothing
        dlgSourisCallBack = Nothing
        tmrSeconde = Nothing
    End Sub

    Private Sub tmrSeconde_Elapsed(ByVal sender As Object, ByVal e As Timers.ElapsedEventArgs) Handles tmrSeconde.Elapsed
        Dim nTickActuel As Integer = Environment.TickCount
        'Delai de l'Idle: 20 minute
        Dim frm As Form1 = CType(Form1.ActiveForm, Form1)
        frm.Affichage(nTickActuel - nTickIdle)
        If ((nTickActuel - nTickIdle) / (1000 * 60)) >= 15 Then
            'On concidère que l'Idle est suffisant pour declenché le processus
            UnHook()
            Stop
            'EVENTS()
        End If
    End Sub

#Region "CallBack"

    Private Function ClavierCallBack(ByVal Code As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer

        If (Code = HC_ACTION) Then
            nTickIdle = Environment.TickCount
        End If

        Return CallNextHookExClavier(hHookClavier, Code, wParam, lParam)
    End Function

    Private Function SourisCallBack(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer

        If (nCode = HC_ACTION) Then
            nTickIdle = Environment.TickCount
        End If

        Return CallNextHookExSouris(hHookSouris, nCode, wParam, lParam)
    End Function

#End Region

End Module

 Conclusion

Qu'est ce qui ne va pas ?
j'ai créé un nouveau projet sous VS2005 (.net 2.0) meme nom de form, de boutton, de label, de module
copier coller dans les procédures

précompilateur => 0 messages, warnings, erreurs
compilateur => 0 messages, warnings, erreurs
éxecution => 0 excpetions

travail demandé => pas fait du tout

localisation du pb :
[...]
    Private hHookClavier As Integer
    Private hHookSouris As Integer
[...]
        hHookClavier = SetWindowsHookExClavier(WH_KEYBOARD_LL, dlgClavierCallBack, hInstance, 0)
        hHookSouris = SetWindowsHookExSouris(WH_MOUSE_LL, dlgSourisCallBack, hInstance, 0)
[...]

quand le code marche "hHookClavier" et "hHookSouris" sont censé recevoir le numero du handle du hook (un identifiant système unique qui permet de savoir que ca a marcher en somme), la doc de "SetWindowsHookExA" indique :

Return Value
If the function succeeds, the return value is the handle to the hook procedure.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

autre passage de la doc MSDN :
Visual Basic:  Applications should call err.LastDllError instead of GetLastError.

ici les 2 integer resultants sont NULL, donc il c'est produit une erreur durant l'appelle, au débugage j'ai donc rajouté 2 ligne :
        hHookClavier = SetWindowsHookExClavier(WH_KEYBOARD_LL, dlgClavierCallBack, hInstance, 0)
        Dim nBug1 As Integer = Err.LastDllError
        hHookSouris = SetWindowsHookExSouris(WH_MOUSE_LL, dlgSourisCallBack, hInstance, 0)
        Dim nBug2 As Integer = Err.LastDllError

et la "nBug1" et "nBug2" sont tout les 2 égale a 0 et quoi qu'il en soit Err n'est meme pas remplis qqsoti le champs

en somme : SetWindowsHookEx dit qu'il y a une erreur et en même temps le service d'erreur windows me dit qu'il n'y en a pas.


je suis donc actuellment assez embetté, je ne sais pas ocmment résoudre ce pb :
* Faut il changer la manière/Méthode/Syntaxe des délégué sous .net 2.0 pour le cas ici présent
* Le handle de l'instance est il tjs correct sous .Net 2.0
* Autre ...


enfin si qqun pouvais m'aider a résoudre ce pb ca m'aiderai bcp merci d'avance

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATION DOCUMENT WORD PAR INTEROP (GESTION DES PARAGRAPHE...
Source avec Zip Source avec une capture Source .NET (Dotnet) CLIENT IRC EN VB.NET MULTISERVER (SUPPRIMÉE)
Source avec Zip Source avec une capture Source .NET (Dotnet) CLIENT IRC (SUPPRIMÉE)
Source avec Zip Source avec une capture SNIFFER (SUPPRIMÉE)

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DÉMON D'ÉCOUTE par 8Tnerolf8
Source avec Zip Source avec une capture AGITATOR - MACRO UNIVERSELLE par exode42
Source avec Zip INTERCEPTER L'APPUI DE TOUCHES AU NIVEAU SYSTÈME par Fixnyl
Source avec Zip Source avec une capture AJOUTER N'IMPORTE QUEL RACCOURCI À VOS MENUS (HOOK CLAVIER) par violent_ken
Source avec Zip Source avec une capture HOOK CLAVIER + SOURIS ( PERMET UN BLOQUAGE DU CLAVIER ET/OU ... par MaxSoldier

Commentaires et avis

Commentaire de TeBeCo le 05/07/2006 01:54:02

merci au 208 visites :) laissé un pti mot svp ca fait avancer les choses
enfin voila :)

Commentaire de TeBeCo le 14/07/2006 13:25:13

j'ai decouvert par hasard qu'en fait le code sous .net 2 marche en execution "reel" mais c'est lors de l'execution via le degubuguer que l'apel de l'API plante si qqun a plus d'onfo la dessus je susi preneur ...
Bug du debugueur .net ? mauvais reglage ?

Commentaire de guiloune le 04/08/2006 20:37:45

Salut TeBeCo
Je souffre de la même difficulté que toi. Je suis obligé de travailler en mode "réel" ce qui complique bcp le Dev.
A tu trouver une solution ?
Merci d'avance de vos contribution

Commentaire de TeBeCo le 07/08/2006 13:36:55

pas actuellement non plus helas ...
J'invite totu de meme tous les autre visiteurs de cette page a laisser un pti mot au moins après plus de 1000 visite ca fait bizarre ...

Commentaire de jazz matazz le 28/08/2006 20:29:50

Salut TeBeCo!

Je débute moins d'un an la programmation VB.NET.

Et j'avais encore de grosses lacune concernant la mise ne place d'un hook! A vrai dire je n'y suis jamais arrivé! Les aides étant trop complexe pour moi :(

Ton code m'a l'air clair, je suis entrain de le modifier pour qu'il corresponde à mon besoin. Je sens enfin que je tiens le bon bout, concernant les hook, et ça c'est grâce à toi TeBeCo ;)

Alors MErci!! Pour cette source!

Je viendrai mettre un petit mot si mes tests sont concluants ;)

Commentaire de TeBeCo le 01/09/2006 20:31:45

je t'en pris :)
je te souhaites une bonne continuation dans tes projets

Commentaire de mexong le 18/10/2006 16:32:25

Ton script est niquel... par contre comment fait ton pour bloquer les combinaisons de touche comme "ctrl + alt" ou "alt + F4"?

Commentaire de TeBeCo le 19/10/2006 01:18:07

pour bloquer une touche ou non le mesasge de retour des fonction ici :

Return CallNextHookExSouris(hHookSouris, nCode, wParam, lParam)

ne doit pas etre apellé ou avec une valeur differente (dsl je repond a une heure tardive ou je susi fatigué) donc avant cela il faut que tu detecte les touches corespondante avec une instruction conditionnelle et en fonction de cela tu renvoi une valeur différente, je 'invitea  lire la doc qui tourne autour des API HOOKé ici tu aura une entriere description de tout les parametre avec les structure a lire et les valeur des touches ...

merci a bientot

Commentaire de Bal1n le 21/12/2006 12:50:36

plop,

Meme problème ici !
Copier/Coller de mon code et ca ne fonctionne pas en mode debug mais ca fonctionne en compilé ...

Pour info j'ai développé mon HOOK keyboard sous VS 2003 et je l'ai copié sous VS 2005.
Idem 0 erreur à la compilation mais le hook echoue en mode debug sur les meme lignes que tu spécifies.
Et pourtant ca marche en compilé ...

Pour moi le bug viens de visual studio et pas du Framework.

Si jamais vous trouver une solution faite le moi savoir ca m'interesse :)

++
Balin

Commentaire de pbeuz le 30/01/2007 16:29:37

apparemment le problème vient de l'option du projet "Actviver le processus d'hébergement Visual Studio"
Quand l'option est désactivée la fonction SetWindowsHookEx() fonctionne correctement avec le debugger

Commentaire de Bal1n le 30/01/2007 16:43:14

:)

Merci, PBeuz je viens de tester ta solution et ç'est effectivement ce paramétrage qui bloqué le débuggueur...

Tu viens de m'enlever une épine dans le pied ;)

Merci à toi et bonne prog.
++

Commentaire de TeBeCo le 01/02/2007 00:50:46

merci de cette réponse cela dit ca me pose tout de même un pb puisuqe ca n'apporte pas de réponse a ce que désactive réellement "Activer le processus d'hébergement Visual Studio"
qu'est ce que cela fait réellement et est ce que ca risuqe d'altérer ou d'empecher le debugage de certaine ligne

Commentaire de Bal1n le 01/02/2007 09:46:26

Hop :)

Google est ton ami

http://msdn2.microsoft.com/fr-fr/library/ms242202(VS.80).aspx

Lien instructif sur la chose :)
++

Commentaire de TeBeCo le 07/04/2007 23:46:04

pour tte les demandes en MP de hook du système de copie de fichier de windows :
http://sourceforge.net/projects/supercopier/

supercopier est un logiciel qui est un des plus avancé en OpenSource à ce sujet.
Je vous souhaite bonne lecture et avant tte question sachez que les fonctions appelées en C/C++ sont TRES souvent retrouvées sous forme d'API sous vb/VB.net en excluant ttes celles deja integrées au framework donc posé pas de question avant d'avoir été tappé le nom de la fonction directemnt dans la case "RECHERCHE" de :
www.msdn.com
qui je le rapelle contient TOUTE LA DOC ONLINE MSDN donc les reponse sont dessus (et oui lire fait partit de l'apprentissage meme en coding) aussi bien .net que C++.
(écrire aussi j'ai un peu de mal à cette heure la à alligner les phrase xD)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ne pas faire lager souris - hook clavier/souris [ par Children ] Bonjours, j'ai actuellement un hook souris/clavier, le seul problème est que je traite pas mal d'information en même temps, et même en utilisant un th bloquer le clavier et le souris [ par kinggnl ] comment je peut acceder a un poste de mon reseau est bloquer le clavier et le souris dans le VB.net ? Clavier er souris remarque [ par robapt ] Salut ,je voudrait savoir si c'&#233;tait possible de bloquer que le clavier ou que la souris parce que je n'ai pas trouv&#233; de source sur le site hook souris et clipboard [ par ayarikhaoula ] salut tou le monde . j é 1 problème de détéction du text séléctionné par la souris .jé télécharger un prg de vbfrance qui détécte le text séléctionné texte séléctionné [ par ayarikhaoula ] salut tout le monde . je souhaite trouver un programme qui détecte le texte sélectionné n'importe ou.pour se faire j'ai entendu parler du hook souris. simuler touche clavier / souris !? [ par Claiyah ] bsr tout le mondesvp est ce c'est possible de simuler le click de la souris ou clavier et afficher le résultat dans un msgbox ou text... meme quand l' hook clavier [ par jocou ] Bonjour à tousPetite question aux spécialistes : Lorsqu'on positionne un hook clavier local (donc sur un thread particulier), est-ce que :   - l'appli comment emuler un clavier a l'aide d'une souris!!! [ par oussamad00 ] slut a tous!!!!!!!! genre: deplacer ma souris comme si j'appuyais sur les fleche si vous voyez ce que je veux dire. Hook clavier et plus [ par jbphp ] Bonjour,je demmande votre sur les interaction clavier avec vb2005.netMon but: rediriger une frappe: atl+f4, ctrl+alt+suppr. et touche windows;plus con Hook de la souris sur une fenêtre issue d'un objet COM [ par chris_brabant ] Bonjouren vb.NET, j'utilise l'API SetWindowsHookEx, au travers d'une DLL en C, pour capturer les &#233;v&#232;nements de type souris sur une fen&#234;


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales