IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]Détecter un click autre part que sur le projet.


Sujet :

VB 6 et antérieur

  1. #1
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut [VB6]Détecter un click autre part que sur le projet.
    Bonjour.
    Vous conaissez peut-être la métode getcursorpos qui permet d'avoir les coordonnée de la souris à tout moment en dehors de la sub (http://vb.developpez.com/faq/?page=Autres#pos_souris)
    Je souaite pour ma part savoir si un utilisateur clique avec sa souris (clic droit et gauche) à tout moment hors de la sub.

    si vous savez comment faire....

    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    NON, je ne sais pas encore mais peux chercher.

    Par contre, si tu veux (ça je sais déjà faire), on peut empêcher la souris de "sortir" des limites de la form

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Merci mais ce n'est malheuresement pas le but. en fait, le programme dois controler une certaine zone de l'écran mais sur une autre aplication.
    Je cherche donc un équivalent de la fonction getX getY. ce sont normalement des api windows mais je ne les conais pas...
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je ne sais pas si celà peut t'aider :

    place sur une form :
    1 commandbutton "testecommand"
    les labels : "lbltrrl1, "formex", "formey", "ecranx", "ecrany", "ctrlx" et "ctrly"

    ajoute ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Type POINTAPI 'structure pour les coordonnées d'un point
      X As Long  'abcisse du point
      Y As Long  'ordonnée du point
    End Type
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
     
     
    Private Sub positions(objet As Object)
      Dim pos As POINTAPI
      If objet.Name = Me.Name Then nom$ = "(La feuille elle même)" Else nom$ = objet.Name
      nom$ = TypeName(objet) & " " & nom$: lblctrl1.Caption = nom$
      GetCursorPos pos
      ecranx.Caption = pos.X: ecrany.Caption = pos.Y
      ScreenToClient Me.hwnd, pos
      formex.Caption = pos.X: formey.Caption = pos.Y
      GetCursorPos pos
      ScreenToClient objet.hwnd, pos
      ctrlx.Caption = pos.X: ctrly.Caption = pos.Y
    End Sub
     
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 0 Then positions Me 'appel de la procédure positions pour la form
    End Sub
     
    Private Sub Testecommand_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      positions testecommand 'appel de la procédure positions pour Testecommand
    End Sub
    démarres, promènes ta souris et vois.

    Comment adapter tout celà à ce qui se trouve hors de la form ? Je cherche
    ...

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    PS.

    Si tu cherches aussi, c'est du côte du hwnd (iici Me.hwnd) que doivent être portées tes recherches (faudrait établir le handle de l'autre aplli)

  6. #6
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    je te remercie mais j'ai déja un code qui fait ça (il suffit d'utiliser le getcursorpos et le screen.activecontrol dans un timer ou une boucle avec doevents)

    mon problème est de savoir quand-est-ce que l'utilisateur clique à un endroit, et plus compliqué: comment être sur d'interceptercette comande.

    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  7. #7
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Au fait, c'est quoi ce nom$ ?
    je ne connais pas cette syntaxe, je l'ai simplement déclaré en string.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  8. #8
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par méphistopheles
    Au fait, c'est quoi ce nom$ ?
    je ne connais pas cette syntaxe, je l'ai simplement déclaré en string.
    C'est l'ancien typage des variables de VB (un suffxe $ signifie type string).

    Certaines habitudes de prog ont la vie dure
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Exact en ce qui concerne nom$.


    Bon, je suis allé un peu plus loin et arrive maintenant à détecter les frappes de touches "normales" hors de l'appli, mais pas encore les clicks et double-clicks..

    Je continue

  10. #10
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    les frappes de touches?
    tu veut dire le clavier c'est ça?
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Oui, bien sur

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Désolé pour toi, Mephisto.

    Autant je parviens à gérer l'emploi des touches, hors appli, du clavier (avec l'API GetAsyncKeyState), autant je n'y parviens pas en ce qui concerne les événements externes de la souris.

    A moins que tu n'y parviennes par l'emploi de l'API (et je suis intéressé de savoir comment), je ne vois rien à te suggérer (sauf si tu as également- le source de l'autre appli et que tu peux en modifier le code en vue de l'envoi d'un "drapeau")

  13. #13
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    non, ce n'est malheuresement pas le cas.

    je vais aller faire un tour sur le forum dévellopement windows pour voir s'ils onts les noms et parramètres d'appel des api.

    merci beaucoup pour tout le mal que tu t'est donné.


    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  14. #14
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Posté Sur le forum dévellopement windows.

    je vous préviens s'il y as du nouveau.

    merci à tous.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  15. #15
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Bonjour.
    j'ai eu sur le sujet plus haut une réponse assez satisfaisante sauf que je n'ai pas compris comment appeler la dll (je ne voit pas où se trouve l'appel dans son aplication d'appel).
    si quelqu'un fait égualement du C, pourrait-il m'aider?

    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  16. #16
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Aie Aie Aie !!!

    Je dis ça par ce que je m'y suis cassé quelques dents, il y a quelques jours, pour tenter de capturer les événements souris externes, comme tu le souhaitais.

    J'avais essayé, en effet, d'utiliser SetWindowsHookEx

    en m'inspirant de ce que je trouvais là :

    http://vbnet.mvps.org/index.html?code/hooks/messageboxhooktimer.htm


    Je ne suis hélàs pas parvenu à tout "lier" convenablement... et, fatigué après 3 bonnes heures de tentatives infructueuses, j'ai abandonné (honte à moi !)


  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    PS ! Ah oui, je me rappelle maintenant TOUTES les raisons du cauchemar (ce qui te fera comprendre ce que j'entends par "lier") :


    1) il ne sert pas à grand-chose de savoir si l'on a simplement cliqué ailleurs ... il faut également savoir sur quoi !!! (Or, si j'ai bien compris, tu cherches à savoir si l'on a cliqué sur une autre appli, bien déterminée)

    2)On pourrait peut-etre rechercher l'application qui a le focus... Mais alors ? Elle a le focus, bon, mais qu'est-ce-qu'on y a touché ? S'il n'y avait pas cette préoccupation (et puisque tu dis ne pas posséder le source de cette 2ème application) on pourrait sans doute, si on détermine qu'elle a le focus, placer un petit drapeau temporaire sur le disque, mais celà impliquerait l'existence, dans la 1ère appli, d'un timer allant constamment vérifier la présence ou l'absence d'un tel drapeau !!!!)

    Je me rappelle toutes ces données (et ce ne sont pas les seules) de ce cauchemar...

    Encore une fois : honte à moi d'avoir abdiqué...

  18. #18
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    ben pour l'apli sur laquelle on à cliqué, je me débrouille effectivement avec le focus. par contre, je n'arrive pas à voir si l'on à cliqué.

    bon, je vais compiler cette dll et on verra.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  19. #19
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Je n'y arrive pas. quelqu'un saurais pas par hazard comment compiler une dll avec Visual C++6.0?

    merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  20. #20
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    l'appli sur laquelle on click, c'est une appli que tu as créé ou tu veut que ton morceau de programme fonctionne quelque soit l'appli ?
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

Discussions similaires

  1. Intégrer une image HTML enregistrée autre part que dans un répertoire du projet
    Par bilbonec dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/11/2012, 16h11
  2. Réponses: 10
    Dernier message: 17/01/2010, 20h58
  3. Réponses: 6
    Dernier message: 21/10/2007, 00h19
  4. Réponses: 14
    Dernier message: 17/08/2006, 10h29
  5. [JFrame] Ouverture fenêtre autre part que dans coin haut gauche
    Par tooney dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 28/05/2005, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo