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 Forms Discussion :

désactiver le bouton imprim écran


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut désactiver le bouton imprim écran
    salut tous le monde
    comment désactiver la touche imprime écran d'un windows form ou de préférence dans un webbrowser ?
    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                if(e.KeyCode.Equals(Keys.PrintScreen))
                MessageBox.Show("print screen key");
            }
    mais ça ne fonctionne pas
    svp est-ce que vous pouvez m'orienter !!
    merci d'avance
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Points : 42
    Points
    42
    Par défaut
    Bonsoir, voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
           //Ton code va super bien rajoute tout simplement 
           //une petite ligne pour vider le presse papier ;)
     
            private void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.PrintScreen)
                {
                    Clipboard.Clear(); //On supprime toute les données du presse papier
                }
            }
    Cordialement

  3. #3
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    merci pour la réponse , mais ça marche pas, l'application ne détecte même pas l'appui sur la touche imprim écran !!
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Points : 42
    Points
    42
    Par défaut
    Ah, j'avais pas compris ça

    Le problème c'est que tu dois pas donner le focus initial à t'as Form et qu'elle contient d'autres Controls... T'as essayé de créer une Form sans aucun control ?

    Sinon tu mes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.Select(); //dans le constructeur juste après InitializeComponent();
    mais si l'utilisateur donne le focus à une textbox par exemple ça ne marchera plus !

    Donc sois tu récupère directement la touche tapé au clavier (mais le problème c'est que sa marchera même si t'es pas dans ton appli) sois tu gères tout les PrintScreens dans chacun de t'es controls

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir
    pour capturer l'appui de la touche PrintScreen, redéfinir les fonctions.
    Il faudra peut être, dans le Load, mettre la propriété KeyPreview du formulaire à True.

    EDIT
    en général un formulaire win héberge des contrôles dont un a le focus.
    Je pense préférable d'intercepter la touche à ce niveau.
    Ce qui peut donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Protected Overrides Function ProcessKeyPreview(ByRef m As Message) As Boolean
     
            If DirectCast(CInt(m.WParam), Keys) = Keys.PrintScreen Then
                Clipboard.Clear()
                Return True
            End If
            Return Me.ProcessKeyEventArgs(m)
     
        End Function
    Si : vide le presse-papiers comme proposé par ivery07 zt indique au système que le traitement est fait.
    Sinon : la touche est à traiter.

  6. #6
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    merci pour les réponses,
    je crois que le problème vient de faite que j'utilise un clavier d'un pc portable et la touche imprim écran c'est la combinaison des deux touches fn et inser, puisque je capture tous les touche sauf printscreen et ( fn en particuiler )
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  7. #7
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    je viens d'essayer avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     protected  override bool ProcessKeyPreview(ref Message msg)
            {
                if (((Keys)(int)msg.WParam) == Keys.PrintScreen)
                {
                    Clipboard.Clear();
                    MessageBox.Show("3");
                   // ScreenCapture(Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
                }
                return true;
            }
    mais des fois ça marche et des fois non, ou ça peut être le problème, a titre d'information mon application contient qu'un webbrowser, un toolstript et le form bien sur !!

    merci de m'orienter
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir,
    en m'inspirant de MSDN.
    Avec dans le load :
    pour que le formulaire reçoive les événements de touche de ses contrôles ayant le focus.
    A tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Dim Bool As Boolean = False
     
        Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
            If e.Modifiers = Keys.Control AndAlso e.KeyCode = Keys.C Then
                Bool = True
            End If
        End Sub
     
        Protected Overrides Sub OnKeyPress(ByVal e As KeyPressEventArgs)
            If Bool = True Then
                e.Handled = True
            End If
        End Sub
    En remplaçant Control par le nom de la touche fonction (fn) et C par Inser, voir si la touche Fn est interceptée.

  9. #9
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    merci beaucoup chrismonoye,

    maintenant ça fonctionne mais uniquement quand je réduit puis je remonte la fenêtre
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir,
    le soucis vient du webBrowser.
    Celui ci n'expose pas directement les événements souris et clavier.
    Il est donc insensible au méthodes OnKeyDown OnKeyPress ...
    Par contre, il gère l'événement PreviewKeyDown, et je ne vois pas d'autre issue que de rajouter cette procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub WebBrowser1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles WebBrowser1.PreviewKeyDown
            If e.Modifiers = Keys.Control AndAlso e.KeyCode = Keys.C Then
                e.IsInputKey = True
            End If
        End Sub
    Bien sûr avec tes codes de touches et peut être un Clipboard.Clear()

Discussions similaires

  1. Désactiver le bouton "fermer fomulaire"
    Par 973thom dans le forum IHM
    Réponses: 10
    Dernier message: 03/02/2005, 20h26
  2. Griser et désactiver un bouton
    Par skea dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/01/2005, 10h45
  3. [MFC] désactiver un bouton d'un CToolBar
    Par bigboomshakala dans le forum MFC
    Réponses: 4
    Dernier message: 22/11/2004, 14h31
  4. Bouton Impression écran
    Par eag35 dans le forum MFC
    Réponses: 3
    Dernier message: 04/11/2004, 09h34
  5. Désactiver un bouton
    Par nd25 dans le forum Flash
    Réponses: 3
    Dernier message: 06/10/2003, 13h18

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