L'opération arithmétique a provoqué un dépassement de capacité.

Résolu
Utilisateur anonyme - 1 nov. 2013 à 23:02
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 2 nov. 2013 à 15:00
Bonjour,
J'ai téléchargé cette source (http://codes-sources.commentcamarche.net/forum/affich-7049352-keylogger-vb-net-2008-v9-class-hook-pour-clavier-fr-et-vista) qui marche bien sous le Framework 3.5 mais lorsque je compile au Framework 4.5, j'ai l'erreur : "L'opération arithmétique a provoqué un dépassement de capacité." à la ligne :
        KeyboardHandle = SetWindowsHookEx(13, callback, Process.GetCurrentProcess.MainModule.BaseAddress, 0)


Est-ce que quelqu'un connais la raison de ce problème ?
Merci.

6 réponses

Utilisateur anonyme
1 nov. 2013 à 23:42
Salut,

■ As-tu modifié le projet existant ?
■ De quelle façon as-tu changé de framework ?
   ► par les options du projet existant ?
   ► par copier-coller dans un projet (framework déjà en place) ?
1
Utilisateur anonyme
2 nov. 2013 à 10:58
Salut banana,
je n'ai rien modifié dans le projet, j'ai juste changé le Framework via les propriétés du projet, Framework cible.
0
Suite,

Ben, par exemple, tout ce qui est (Byte, integer, long), tu le déclares en DOUBLE pour voir si ça passe :

Dim v As Double = 0.0


Cordialement, Joe.
1
Utilisateur anonyme
2 nov. 2013 à 13:11
J'ai remplacé le type de variable et ça n'a rien donné.
0
On peut lire ici qu'il faudrait remplacer le paramètre Process.GetCurrentProcess.MainModule.BaseAddress par IntPtr.Zero pour XP.
A voir...
1
Utilisateur anonyme
2 nov. 2013 à 13:12
Merci beaucoup banana j'ai fais ce que tu as dis et ça fonctionne :D Une fois de plus tu arrive à résoudre mon problème ahah !
Par contre est-ce que je pourrais avoir des explications sur la différence entre ces deux paramètres ?
0
Par contre est-ce que je pourrais avoir des explications sur la différence entre ces deux paramètres ?
Il y a forcément une explication mais je ne pourrai te la donner. Essaye de potasser la documentation de cet API sur msdn.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Modifié par ucfoutu le 2/11/2013 à 15:29
http://www.pinvoke.net/default.aspx/user32.setwindowshookex

En gardant toujours à l'esprit que le sous-classement est un acte complexe, délicat, non exempt de génération d'erreur fatale à la moindre erreur de sous-classement ou d'interruption.
L'utilisation de sous-classement est totalement déconseillée à tout développeur qui ne maîtrise pas parfaitement son propre langage (d'abord) et les incidences de l'interception de messages windows (ensuite).
Voilà ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
1
Bonjour,

Déclare les variables numériques plus grandes (int32, int64, double, long)...

Cordialement, Joe.
0
Utilisateur anonyme
2 nov. 2013 à 10:59
Bonjour,
je ne comprends pas quelles variables dois-je modifier. Pourrais-je avoir des explications supplémentaires ?
Merci.
0