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

Windows Discussion :

[C]Bloquer le clavier ou la souris ?


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut [C]Bloquer le clavier ou la souris ?
    Bonjour,
    je voudrais faire un code qui, une fois activé, pourrait bloquer le fonctionnement de la souris.
    J'ai donc fais le code suivant :

    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
    #include <windows.h>
    int main(int argc, char *argv[])
    {
         POINT pt;
         BOOL bContinue = TRUE;
         const SHORT Mask = 32768;
                          
         GetCursorPos(&pt);
                                
               while (bContinue)
               {
                    if (GetKeyState(VK_ESCAPE) & Mask)
                    bContinue = FALSE;
                    
                    else
                    SetCursorPos(pt.x,pt.y);                                                             
               }         
         return 0;
    }
    Notez la commande de désactivation ECHAPE si vous voulez tester ^^
    Ce code fonctionne, bien qu'il soit peu pratique. Seulement maintenant je voudrais aussi faire un code pour bloquer le clavier, et là ca devient plus compilquer !
    Je voudrais donc savoir si il n'existe pas une fonction pour faire ce boulot. J'ai vus ca (ca se sert de RUN.DLL):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WinExec("rundll32.exe keyboard,disable",SW_SHOW);
    Mais ca ne marche pas.
    Merci d'avance.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Y'a BlockInput, mais un CTRL+ALT+SUPPR débloquera l'affaire... c'est une combinaison de sécurité un peu complexe à court circuiter.
    http://www.codeproject.com/win32/AntonioWinLock.asp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Merci, mais où puis-je me renseigner sur le BlockImput ? Cela fonctionne-t-il aussi avec la souris ?
    Merci.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Excuse moi je n'arrive pas à utiliser la fonction. J'ai bien inclus user32.lib pourtant. Pourrais-tu me monter un exemple de code, car je doute du mien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <windows.h>
    int main(int argc, char *argv[])
    {
        BOOL BlockInput( BOOL TRUE );
    }
    Merci.
    PS : j'avais déjà fais une recherche sur la msdn, mais je n'vais rien trouvé

  6. #6
    mat.M
    Invité(e)
    Par défaut
    ???

    Mais c'est pourtant très simple l'exemple qu'a donné Aurélien

    Il suffit d'appeler BlockInput(TRUE) ou FALSE

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <windows.h>
    int main(int argc, char *argv[])
    {
        BlockInput( TRUE );
    }
    Mais ca marche toujours pas !

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Parce que ton programme se termine immédiatement.
    The system will unblock input in the following cases:

    The thread that blocked input unexpectedly exits without calling BlockInput with fBlock set to FALSE

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Excuse moi, mais je ne comprends pas bien. Pourrais-tu m'expliquer ?
    Merci.

  10. #10
    mat.M
    Invité(e)
    Par défaut
    On n'arrive pas à comprendre ce que tu veux faire , qu'elle est la finalité de la chose ?

    BlockInput d'après le message d'Aurelien ne fonctionnera,apparemment, que si tu places cette instruction dans une boucle sans fin .
    Or si tu fais cela , ton programme va boucler indéfiniment.
    Expliques-moi pourquoi tu t'acharnes à bloquer l'accès clavier ??
    C'est radicalement opposé à l'ergonomie d'un programme Windows ou l'utilisateur utilise des raccourcis , le pointeur de la souris etc...

  11. #11
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par The Lord of Nesquik
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <windows.h>
    int main(int argc, char *argv[])
    {
        BlockInput( TRUE );
    }
    ton programme fait :
    - bloquer les entrées
    - se terminer aussitôt
    et la doc de BlockInput dit:
    "les entrées sont débloquées quand le programme se termine"...
    Le code suivant bloque les entrées pendant 10 secondes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <windows.h>
    #include <winable.h>
    
    int main(int argc, char *argv[])
    {
        BlockInput( TRUE );
        Sleep( 10000 ); // 10 secondes avant de quitter
    }

  12. #12
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Si le but est de bloquer clavier et souris pour toutes les applications, peut-être serait t'il judicieux de se pencher du côté des "hooks"
    systèmes
    .: La cosse : il n'y a que ça de vrai :.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 193
    Points : 65
    Points
    65
    Par défaut
    Merci beacoup, ca marche !
    J'avais essayé de faire une boucle mais je n'avais pas réussi à faire marcher le bidule.
    Bon bref, ca c'est reglé pour le clavier.
    Juste, y a-t'il une fonction pour bloquer uniquement la souris, car ma boucle infinie est lourde et surtout génante pour la suite de mon code.
    Merci !

  14. #14
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Je reprécise, au cas où, que ctrl+alt+suppr débloquera tout ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] bloquer le clavier et la souris
    Par Kinggnl dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/11/2011, 14h11
  2. bloquer le clavier et la souris est possible en java
    Par win_ubuntu dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 14/09/2010, 11h29
  3. Bloquer le clavier et la souris en VB6
    Par castelom dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/06/2009, 14h09
  4. Comment bloquer le clavier et la souris
    Par blondelle dans le forum C++Builder
    Réponses: 17
    Dernier message: 14/10/2007, 21h47

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