frankinfo
-
7 déc. 2012 à 16:31
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
7 déc. 2012 à 18:43
Bonjour,
J'essaie en vain de faire une appli sous Visual Basic Express 2010 sous Seven 64b. Le but est de faire un auto-clicker.
Je déclare ceci :
Declare Sub mouse_event Lib "user64" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Et plus loin, je voudrais faire un clic gauche de souris à la position mémorisée
Dim X As Integer = Val(txt_mouse_x.Text)
Dim Y As Integer = Val(txt_mouse_y.Text)
Windows.Forms.Cursor.Position = New System.Drawing.Point(X, Y)
mouse_event(&H2, 0, 0, 0, 1)
mouse_event(&H4, 0, 0, 0, 1)
Le problème est que sous Seven 64b, le mouse_event plante :
"Impossible de charger la DLL 'user64': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)"
Impossible de faire un clic gauche de souris sous Seven 64b. Vous pouvez m'aiguiller vers la solution ?
Merci.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 7 déc. 2012 à 18:43
Je n'ai pas tout compris mais ça marche
Cesse d'inventer des librairies inexistantes, "au feeling" et tu t'en porteras mieux.
La librairie User64.dll n'existait tout simplement pas et la librairie User32.dll est celle qu'utilise également Win 7 64 bits. Voilà tout
Te reste à libérer cette discussion (un clic sur le tag "réponse acceptée").
________________________
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'interviendrai que si nécessité de la compléter.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 7 déc. 2012 à 17:10
Bonjour,
1) J'ignore ce qu'est la librairie "user64" ! D'où la sors-tu ?
2) pas de type long en VB.Net
________________________
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'interviendrai que si nécessité de la compléter.
Heu... Ben j'en sais rien, j'ai pompé un code et j'ai vu qu'il était en user32
Etant en 64b, j'ai changé...
Mais peut-être que je n'utilise pas la bonne méthode ? J'arrive à avoir la position de mon curseur en X et Y sur mon écran, je veux juste faire un clic maintenant.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 7 déc. 2012 à 18:16
Bonjour,
En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pour m'aider à comprendre, voilà le message complètement obscure pour moi :
Un appel à la fonction PInvoke 'auto_clic!WindowsApplication1.frmautoclic::mouse_event' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 7 déc. 2012 à 18:36
Bonjour,
As-tu modifié le code (Long -> Integer) comme te l'a conseillé UcFoutu ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---