L'opération arithmétique a provoqué un dépassement de capacité. [Résolu]

CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 1 nov. 2013 à 23:02 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Utilisateur anonyme - 1 nov. 2013 à 23:42
1
Merci
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) ?

Merci Utilisateur anonyme 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 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.
Commenter la réponse de Utilisateur anonyme
Meilleure réponse
1
Merci
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.

Merci ehjoe 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 2 nov. 2013 à 13:11
J'ai remplacé le type de variable et ça n'a rien donné.
Commenter la réponse de ehjoe
Meilleure réponse
1
Merci
On peut lire ici qu'il faudrait remplacer le paramètre Process.GetCurrentProcess.MainModule.BaseAddress par IntPtr.Zero pour XP.
A voir...

Merci Utilisateur anonyme 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 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 ?
Commenter la réponse de Utilisateur anonyme
Meilleure réponse
1
Merci
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.

Merci Utilisateur anonyme 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 2/11/2013 à 15:29
1
Merci
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

Merci ucfoutu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de ucfoutu
0
Merci
Bonjour,

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

Cordialement, Joe.
CLeBeR_FR 301 Messages postés mercredi 22 septembre 2010Date d'inscription 27 février 2018 Dernière intervention - 2 nov. 2013 à 10:59
Bonjour,
je ne comprends pas quelles variables dois-je modifier. Pourrais-je avoir des explications supplémentaires ?
Merci.
Commenter la réponse de ehjoe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.