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 :

API detecte Click souris


Sujet :

VB 6 et antérieur

  1. #1
    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 API detecte Click souris
    Bonsoir à tous
    Je cherche une API qui renvoie si l'utilisateur click sur un bouton de la sourie. J'ai une API qui génère ces clicks, mais pas qui détecte. Comme pour le clavier GetKeyState, mais pour la sourie. Quelqu'un connais-t-il ??
    D'avance Merci
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    j'ai utilisé ça une fois, je crois que ça s'appelait getinputstate ... ça détecte les entrées donc clavier et souris.

  3. #3
    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
    Je viens de regarder cette API mais elle ne convient pas à ce que je souhaite. Je me rend compte que je me suis mal exprimé. Je cherche une API qui me permette certe de detecter un click de la souris mais aussi quelle bouton, s'il est enfoncé ou relaché. Bref exactement le fonctionnement de l'API GetKeyState mais pour la sourie.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Il y a une raison pour ne pas utiliser l'événement MouseUp ?

  5. #5
    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
    Bien sûr j'ai oublié de préciser
    La feuille sera invisible ( même réduite en icone dans le systray). Donc les événements click pouront être par exemple lorsque l'utilisateur click sur le poste de travail afin de l'ouvrir.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    En fait tu peux faire comme ça :

    Getinputstate pour savoir si il y a une évènement clavier ou souris

    Ensuite, si oui, GetQueueStatus pour savoir s'il y a un évènement QS_MOUSEBUTTON (http://msdn2.microsoft.com/en-us/library/ms644940.aspx)

    Ensuite, si oui, GetMessage pour détecter un WM_LBUTTON ou WM_RBUTTON ce qui t'intéresse, à savoir le bouton gauche ou bouton droit.

    a+

  7. #7
    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
    J'ai chercher un peu, j'ai trouver des exemples dans API-guide pour GetInputState et GetQueueStatus, j'ai fait un petit bout de code qui je pense est senssé detecter simplement un click quelqu'il soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim can As Boolean
    can = False
    Do
    If GetInputState Then
    If GetQueueStatus(QS_MOUSEBUTTON) Then
        MsgBox "Click"
        can = True
    End If
    End If
    DoEvents
    Loop Until can = True
    Sur la feuille cela marche très bien, mais dès que je sors de la feuille (exemple : je click sur le bureau) cela ne me le detecte pas
    Quand a l'API GetMessage, je n'ai pas trouvé quoi que ce soit qui puisse m'en faire comprendre le fonctionnement.

    Merci de m'aider
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  8. #8
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    GetInputstate ne détecte que pour l'application en cours si je ne dis pas de betise.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  9. #9
    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
    C'est ce que j'avais déduit de mes essais Une autre API à me proposer pour detecter un click sourie quelqu'il soit ainsi que le bouton de la sourie ???
    D'avance merci
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    hum pas d'idée

    Précise un peu pourquoi t'as besoin de tout ça, peut-être que j'aurai une alternative de derrière les faggots

  11. #11
    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
    Ok, je fait un loggeur d'événement qui devrat les reproduire. C'est à dire que l'on appuie sur un petit bouton enregistrer, l'appli passe en icone, on fait ce qu'on a à faire et enfin on fait une combinaison de touches pour arrêter l'enregistrement. Puis quand on fait Lecture, l'appli repasse en icone mais cette fois elle refait ce que l'on à fait pendant l'enregistrement. J'arrive presque à tout faire (Clavier + mouvement sourie), j'ai les API qui permettent de générer des click sourie, me manque plus qu'a les detecter.
    Voila, j'espère avoir été clair dans mes explications
    Merci de m'aider
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    et quand l'appli est réduite ça ne retient pas les évènements ? Hum ... Embêtant.

    Je sèche.

    Ah non en fait, je pense que tu dois pouvoir subclasser le bureau de windows, mais là ... Bon courage je ne m'y aventurerais pas, trop peur d'y passer la nuit xD

    Grosso modo l'idée est d'insérer ta propre procédure avant la procédure mère du bureau de windows, comme ça tu pourrais éventuellement récupérer les clicks grâce à ce moyen.

  13. #13
    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
    J'ai compris l'idée (très grossomodo) mais quand à ce qu'il faut faire ... euh je ne sais même pas par ou il faudrait commencer. lol.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    voir déjà si le bureau a un handle. (hWnd)

    Une fois qu'il l'a, l'api à utiliser sera setWindowProc je crois.

  15. #15
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par Vld44
    voir déjà si le bureau a un handle. (hWnd)
    En toute objectivité, sans parler programmation en soit, le bureau doit bien avoir un handle... puisqu'on s'en sert pour naviguer grâce à notre OS...
    Après reste à voir si il este xploitable en effet...
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    hmm peut-être n'est-ce pas une "form" comme on l'entends en vb, et là ça risque de se compliquer.

    edit :

    Declare Function GetDesktopWindow Lib "user32" () As Long

    Description :
    Cette fonction vous retourne le Handle de la fenêtre correspondant au bureau (Celle sur laquelle est affiché le fond d'écran, et les icônes).

    edit 2 :

    http://megaten.alterlinks.fr/vbtools...ubClassing.php

  17. #17
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Oui c'est aussi ce que je me demandais...

    mais, je le répète encore, en tant qu'amateur, pour ma culture générale, y'a-t-il d'autre moyen, plutôt d'autre... "trucs"(rhô ce professionalisme dans mes termes... ) qui pourraient remplacer le handle???
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  18. #18
    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
    Je viens de trouver comment faire, avec une API, c'est super simple, vous allez rire.
    Et ben on utilise l'API GetKeyState, et oui, exactement celle qui permet de detecter les touche du clavier, les VKey de la sourie sont 1,2 et 4 pour les click gauche, droite et du milieu.
    Merci quand même.

    ps : j'avais commencé ta solution vld44, j'avais aussi le handle du bureau avec la même API que celle que tu as noté, mais je n'ai rien trouver sur SetWindowProc. Par contre je trouvais des info sur SetWindowsHookEx. Bref plus la peine, mais merci infiniment d'avoir chercher
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  19. #19
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    ouai ben t'as bien fait parceque vois le bordel pour le subclassing.

    edit : mais en fait le problème était qu'une fois la form réduite ne recevait plus les évenements, tu veux dire que getkeystate passe outre cette limitation ?

  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
    ouai je viens de terminer mon programme, et ca marche nickel. La feuille et rendue invisible, un icone dans le systray et GetKeyState detecte Touches et Clicks sans aucun problème.
    L'avantage du GetKeyState est que on peut facilement voir si entre deux appels à l'API une touche à été enfoncée puis relachée. Il y à deux valeurs pour la touche relachée (0 et 1) et pour la touche enfoncée (-128 et -127) et pour une meme touche elles alternes.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [C#] Simuler un Click souris
    Par helmout dans le forum Windows Forms
    Réponses: 13
    Dernier message: 13/12/2007, 01h59
  2. Detection de click souris sur form - Besoin d'aide
    Par ggcourtois dans le forum Windows Forms
    Réponses: 11
    Dernier message: 22/03/2007, 14h39
  3. Détecter position souris
    Par Glosialabolas dans le forum Linux
    Réponses: 3
    Dernier message: 17/11/2005, 08h42
  4. Simulation de click souris
    Par Nats dans le forum Windows
    Réponses: 5
    Dernier message: 07/02/2005, 20h51
  5. [Kylix] Simluler des click souris
    Par paci dans le forum EDI
    Réponses: 2
    Dernier message: 24/06/2003, 11h23

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