begin process at 2010 02 10 11:31:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > DÉSACTIVATION CLAVIER ET SOURIS

DÉSACTIVATION CLAVIER ET SOURIS


 Information sur la source

Note :
9,4 / 10 - par 5 personnes
9,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Source .NET ( DotNet ) Classé sous :désactiver, souris, clavier, hook, global Niveau :Initié Date de création :16/08/2006 Date de mise à jour :22/08/2006 15:49:41 Vu / téléchargé :16 026 / 1 239

Auteur : Bidou

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Désactiver souris et clavier C# / Disable mouse and keyboard C#

J'ai un léger doute sur la réelle utilitée de ce programme, mais comme ça a été demandé sur le forum... et bien je le mets quand même à disposition.
Ce programme permet donc de désactiver la souris et/ou le clavier... j'espère qu'il sera utilisé de manière "saine" et pas pour faire des logiciels douteux.

Voilà, l'idée générale est de faire un hook global pour intercepter clavier et souris.

Source

  • private UserActivityHook _gHook = new UserActivityHook();
  • this._gHook.Start(); // Start the process
  • this._gHook.Stop(); // Stop the process
private UserActivityHook _gHook = new UserActivityHook();
this._gHook.Start();	// Start the process
this._gHook.Stop();	// Stop  the process

 Conclusion

Je tiens à préciser que ce code est largement inspiré de celui de "pocjoc" que vous pouvez retrouver sur CodeProject :
http://www.codeproject.com/samples/ForTheKids.asp

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 août 2006 23:11:38 :
Légère modif' dans la description
17 août 2006 23:46:49 :
Ajout d'une capture
22 août 2006 15:49:41 :
Changement description, mots clefs, ...

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C#
Source avec Zip Source avec une capture Source .NET (Dotnet) CUBE-IT: PETIT JEU EN WPF
Source avec Zip Source avec une capture Source .NET (Dotnet) YOUTUBE VIEWER
Source avec Zip Source avec une capture Source .NET (Dotnet) COLOR WHEEL
Source avec Zip Source avec une capture Source .NET (Dotnet) PETIT EXEMPLE UTILISANT XAML ET WPF

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L'API VIRTUAL DISK IMAGE DE WINDOWS 7 par Willi
Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C# par Bidou
Source .NET (Dotnet) CHANGER LA RESOLUTION DE VOTRE ECRAN, UTILISATION DES API WI... par mechtaly
Source avec Zip Source .NET (Dotnet) CRÉER SON PROPRE DESIGNER COMME CELUI DE VISUAL STUDIO par ShareVB
Source avec Zip Source .NET (Dotnet) CSVSHARP. DLL D'IMPORT/EXPORT DE CONTENU AU FORMAT CSV par heriquet

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) HOOK CLAVIER par damned3
Source avec Zip Source avec une capture Source .NET (Dotnet) LIBRAIRIE RAWINPUT .NET par Lutinore
Source avec Zip Source .NET (Dotnet) TRADUCTION D'ÉVENEMENT SOURIS EN TOUCHE par iow4
Source avec Zip Source .NET (Dotnet) SIMULATION D'ÉVÉNEMENTS CLAVIER ET SOURIS par mastercatz
Source avec Zip Source .NET (Dotnet) LIBRAIRIE FOURNISSANT DES ÉVÈNEMENTS SOURIS GLOBAUX (HORS AP... par Nikoui

Commentaires et avis

Commentaire de Nikoui le 23/08/2006 15:57:54

Interressant ! Je n'imaginais pas que c'était possible d'aller jusque là... Après comme tu le dis, difficile d'y voir une utilité autre que faire une mauvaise blague (dans le meilleur des cas). Remarque : Chez moi (winXP) la combinaison  Ctrl+Alt+Suppr n'est pas bloquée... (l'OS se garde quand même une petite sécurité ?)

Commentaire de Bidou le 23/08/2006 19:17:33 administrateur CS

Effectivement, mais tu n'es pas plus avancé car une fois la fenêtre du task manager ouverte, tu ne peux plus rien faire...

Commentaire de leproc le 28/02/2007 21:04:22

Je vois pas l'intérêt non plus, sauf si on peut désactivé clavier ou souris, mais les 2 à la fois
Bon bah reset quoi.

Commentaire de leproc le 28/02/2007 21:06:16

En fait je vien de trouver une utilité. Quand un programme p^rend beaucoup de ressource on bloque clavier et souris le temp de l'opération

Commentaire de Bidou le 01/03/2007 08:46:04 administrateur CS

Salut et merci du commentaire.

J'ai posté ce code à la demande sur le forum...
Il assez facile de l'adapter pour que l'ont puisse choisir si on veut bloquer soit la souris, soit le clavier ;-)

Commentaire de xxx007xxx le 04/04/2007 06:03:36

Est-ce qu'il block les keys modifier :shift-alt-ctrl?

Commentaire de Bidou le 04/04/2007 07:50:44 administrateur CS

Non (cf. les deux premiers commentaires)

Commentaire de Bhaal_DtC le 06/05/2007 17:19:38

Salut,

Je viens de tester cette source et elle est excellente. Le projet marche trés bien mais il n'y a rien a faire je n'arrive pas a l'utiliser cette classe dans un nouveau projet VS2005. Il y a une manip spéciale à faire ou alors je fais ma quiche :o.

Commentaire de Bidou le 06/05/2007 17:49:41 administrateur CS

Il suffit de créer un object UserActivityHook

private UserActivityHook _gHook = new UserActivityHook();

Puis d'appeler start pour enclencher, ou stop pour arrêter

this._gHook.Start(); // Start the process
this._gHook.Stop(); // Stop  the process

Commentaire de Bhaal_DtC le 06/05/2007 18:17:40

Bon je suis sauvé, je viens de trouver pourquoi cela ne fonctionne pas. avis aux futurs utilisateurs cela peut aider.
Dans les propriétes de mon projet, au niveau de l'onglet debug j'ai du décocher "Enable the Visual Studio hosting process".
Si quelqu'un peu me dire à quoi cela sert en temps normal je suis prenneur :)

Commentaire de Bidou le 11/05/2007 08:58:38 administrateur CS

http://msdn2.microsoft.com/en-us/library/ms185330(VS.80).aspx

Commentaire de lording le 06/06/2007 13:17:28

Messieurs,

Je viens de trouver une utilité importante au code.
Il s'agit de détecter une vitesse GPS (dans le cas d'une utilisation en voiture) et de bloquer l'accès au clavier souris si on roule a une vitesse supérieure a 30km.
Des lors on évite ainsi des accidents graves.
Si la vitesse gps est + de 30km/h clavier souris bloquer si la vitesse gps est moins de30km/h le  clavier et la souris sont a nouveau actif.
Voila. Super code en bref et non pas a but douteux lol (enfin pour ma part) !!!!!
Il y a juste qu'il serait intéressent d'ajouter la version compilé.


Commentaire de Renfield le 06/06/2007 13:41:05 administrateur CS

trop radical...
m'arrive de bidouiller mon GPS sur l'autoroute, même...

sans compter qu'il peut y avoir un "co-pilote" ^^

Commentaire de Nikoui le 06/06/2007 14:10:14

Et dans ce cas, autant être logique et bloquer l'utilisation clavier/souris dès que le véhicule est en mouvement...

Commentaire de lording le 06/06/2007 15:45:16

Les valeur vitesse GPS ne sont pas fixe et donc il se peut que le véhicule ne bouge pas et pourtant le gps envoi une vitesse de déplacement (tout dépends du type de GPS utilisé et du nombre de satelites réceptionner).
Il est vrai que 30km/h est large, mais prennons 10km, car si on fait des testes en étant a pieds il ne doit pas se bloquer.
Uniquement si la vitesse de déplacement est supérieure a la vitesse de marche.
Voila tout.

Commentaire de Bidou le 06/06/2007 17:11:12 administrateur CS

Tant mieux si vous trouvez des cas d'utilisations utiles ^^
Pour l'exe, je ne l'ai pas ajouté car en l'état, le programme ne sert à rien sauf à faire ch*er le monde ;-)

Commentaire de Renfield le 07/06/2007 00:47:44 administrateur CS

pi comme je l'ai dit plus haut, rien n'empeche le passager de regler le GPS...alors meme que le vehicule bouge

Commentaire de sylvafilms le 05/07/2007 20:49:05

Bonjour, et merci pour ce code vraiment très utile dans mon cas car je suis en train de faire un programme ou meme si on appuye sur les touches du clavier avant d'arriver a la saisie d'un code par un scanf() ou gets(), et bien les touches que l'on a appuyé précédement ne doivent pas aparaitre. (car windows se rapelle de nos actions et déballe toutes les touches d'un coup qu'on a tapé quand arrive le scanf.

Donc le seul moyen que je connais dans mon cas est de verrouiller le clavier.

Seulement voila, je n'arrive pas a faire fonctionner ce code.
Je suis débutant dans le domaine.
Si Mr le créateur pouvait m'aider ce serait vraiment en le remerciant! :)

J'ai fait un programme de test vite fait pour tester le code:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
// début du programme de test

private UserActivityHook _gHook = new UserActivityHook();

this._gHook.Start(); // Start the process
sleep(5000) // c'est a ce moment que j'appuye sur les touches du clavier
this._gHook.Stop(); // Stop the process

printf("press key");
getch(); // la le programme ne doit pas passer le getch()si je n'appuye pas sur une touche,
// puisque le clavier était verouillé lors de la frappe pendant le sleep(5000)


// fin du programme de test
printf ("\n\n\n\nPROGRAMME TERMINE");
getch();
return 0;
}

Donc voila, je vous serait très reconnaissant si un codeur pouvait m'expliquer comment faire marcher ce code.

Merci d'avance, et bonne continuations a tous!

Commentaire de Bidou le 05/07/2007 21:15:28 administrateur CS

Euh, ce code c'est du C#, pas du C!
Rien avoir :-/

Commentaire de sylvafilms le 05/07/2007 23:15:34

C'est a dire, il y a le language C et C# ?

Quand tu dis C#, tu veux dire C++ ?

Saurait tu comment créer le meme type de code en C ?

Merci d'avance.

Commentaire de Bidou le 06/07/2007 08:09:47 administrateur CS

Non ça n'a rien avoir, C, C++ et C# c'est différent (surtout pour le dernier).
Et ici, tu es sur csharpfr.com, où on fait du C# (cSharp).
Pour le C/C++ tu peux aller ici: www.cppfrance.com

Commentaire de sylvafilms le 06/07/2007 20:04:18

Merci bidou !

Commentaire de panterga le 15/12/2007 18:36:32

j'ai une utilité
si vous utilisez un scanner sur un pda  et que quelqu'un appui sur le clavier avant de scanner vous risquez d'avoir une lecture erronée .

Commentaire de nico9111 le 29/03/2008 16:05:16

Dans le cas précis de la désactivation ça peut se faire sans hook :
[DllImport("user32.dll")]
static extern bool BlockInput(bool fBlockIt);

BlockInput(true); -> désactive
BlockInput(false); -> réactive

Ça renvoie true si ça réussit, sinon false; un Ctrl+Alt+Suppr suffit à réactiver, sinon le seul thread qui peut réactiver est celui qui a désactivé.

Commentaire de xavtak le 12/08/2008 15:44:49 10/10

Merci !!
C'est presque exactement ce que je cherchais, pour laisser ma fille (11 mois :D ) jouer avec l'ordinateur (à son âge, elle veut surtout faire comme papa-maman) sans avoir peur du "suppr" malencontreux ^^

J'ai juste modifié un peu le code pour qu'il se lance sans limite de temps, mais s'arrête si on tape 4 fois de suite la touche <alt gr>. Et j'ai aussi laissé le mouvement de la souris (pas les clics) pour qu'elle voie que ça bouge :)

Le source est suffisamment clair pour que ces modifs ne m'aient pas pris plus d'une heure ! Bien joué :)

Commentaire de cris27 le 19/09/2008 15:00:07 10/10

Merci beaucoup ,

Je me sert de ce code pour vérouiller des pc de supervision industrielle .

Trés bonne source

Commentaire de Neokript le 28/12/2009 14:34:51

Bonjour,
j'ai modifie ton code afin de ne gerer que le clavier comme ceci :

using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Windows.Forms;

namespace ClientUser
{
    class KeyBoardState
    {
        #region Variables
        private int _hKeyboardHook = 0;
        private static HookProc KeyboardHookProcedure = null;
        #endregion
        #region DLL Import
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
        private static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, int dwThreadId);
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
        private static extern int UnhookWindowsHookEx(int idHook);
        #endregion
        #region Delegate
        private delegate int HookProc(int nCode, int wParam, IntPtr lParam);
        #endregion
        #region Constantes
        private const int WH_KEYBOARD_LL = 13;
        #endregion
        #region Méthodes
        public KeyBoardState()
        {
        }
        ~KeyBoardState()
        {
            this.Disable();
        }
        public void Disable()
        {
            if (this._hKeyboardHook == 0)
            {
                KeyboardHookProcedure = new HookProc(KeyboardHookProc);
                Int32 test = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProcedure, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);

            }
        }
        public void Enable()
        {
            if (this._hKeyboardHook != 0)
            {
                UnhookWindowsHookEx(this._hKeyboardHook);
                this._hKeyboardHook = 0;
            }
        }
        public Boolean IsEnable
        {
            get
            {
                if (this._hKeyboardHook == 0)
                    return (false);
                return (true);
            }
        }
        private int KeyboardHookProc(int nCode, int wParam, IntPtr lParam)
        {
            return (-1);
        }
        #endregion
    }
}


Cependant, SetWindowsHook me renvoi toujours 0.
Je precice que je suis sous Seven je ne sais pas si cela joue !

J'ai l'erreur 126 pour infos, module not found, faut-il que je mette le code dans une dll ?

Merci de votre aide,
Cordialement,

NeoKript

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Désactiver clavier [ par onde2chockgbkgb ] Bonjour à tous. Avant toute chose, je voudrais au préalable m'excuser de poster ici car je ne pense pas que ma demmande soit orienté dans le sens de clavier et souris sans fil [ par ecr ] ecrBonsoir,Je viens d'acquérir un clavier et une souris sans fil Logitech Deluxe 660 Cordless Desktop, mais je n'ai aucun voyant qui m'indique si Verr [Souris et Clavier] [ par KqMii ] Bonjours, J'aimerais savoir comment je pourais par exemple quand j'appuis sur la touche F4 cela simule un clic souris et Quand j'appuis sur F3 Cela et Bloquer la souris et le clavier [ par sayed2005 ] je cherche comment bloquer la souris et le clavier d'un PC,a l'instar de NetS Hook : Erreur sur traitement partiel [ par Yxion ] Salut tous le monde,Je suis en train de me prendre la tête sur le WebBrowser ...J'aimerais prendre pocéssion des cliques souris : gauche, milieu et dr Simulation clavier/souris [ par Ordinastie ] Bonjour.Voial, mon but est de simuler l'appui d'une touche ou d'un s&#233;quence de touches du clavier.M'&#233;tant pench&#233; du cot&#233; de l'API Récuperer evenement click Souris - Hook [ par boutnell ] Bonjour,Je voudrais pouvoir connaitre, a chaque instant et sur chaque programme qui tourne, si l'utilisateur click sur sa souris.Par exemple,&nbsp;aff problème de gestion de clavier et de souris [ par brunhoff ] bonjour dans un programme j'utilise un clavier visuel et l'utilisation du clavier "physique" pour pouvoir jouer &#224; 2 mais d&#232;s que je clique s Hook clavier [ par Mr.X ] Bonjours.J'ai essayer de réaliser un programme pour faire un hook du clavier plus particulièrement de la combinaison "Control+C". J'ai essayer ce code Récupérer positions souris et frappes clavier [ par guillaume_quest ] Bonjour à tous, Je voudais connaître une fonction qui permet de récupérer la position de ma souris par rapport au haut de la fenêtre (ou en haut de ma


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales