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 :

Coller sans SendKeys


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut Coller sans SendKeys
    Bonjour, j'ai fais un programme rapidement pour enregistrer des textes et en appuyant sur une série de touches ça l'affiche.

    Tout fonctionne j'utilise SendKeys "^V" pour coller. Mais ça ne marche pas en terminal, il copie, je peux faire ensuite ctrl + v et ça marche mais le sendkeys ne fonctionne pas.

    Vous avez une idée pourquoi?

  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
    Par défaut
    Comme chez moi tout marche bien, je me dis que ton code est fautif... mais ne vois pas ton code...
    Montre-nous le donc en nous disant dans quel événement de quel contrôle il est écrit.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Clipboard.Clear
    Clipboard.SetText txtF7.Text, vbCFText
    SendKeys "^V"
    C'est actionné lorsque j'appuie sur CTRL + F7. Tout fonctionne bien tant que je ne suis pas en terminal. Lorsque je suis en terminal il copie bien mais il n'envoie pas le SendKeys "^V", si je le fais moi même (ctrl + v) il colle le texte correctement.

    Merci

  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
    Par défaut
    Citation Envoyé par jmfmarques
    Comme chez moi tout marche bien, je me dis que ton code est fautif... mais ne vois pas ton code...
    Montre-nous le donc en nous disant dans quel événement de quel contrôle il est écrit.
    j'attends...

  5. #5
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    en nous disant dans quel événement de quel contrôle il est écrit
    J'ai utilisé un objet qui s'appel ReyHotKeys qui gère justement les touches clavier. Donc sur HotKey_HotKeyPressed il fait un Case sur l'ID que ça donne et je configure des ID différent pour mes Key.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set HotKey = New ReyHotKey
    HotKey.hwnd = Me.hwnd
    HotKey.Register vbKeyF7, MOD_CONTROL, 1
    Et

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Private Sub HotKey_HotKeyPressed(ByVal ID As Integer)
    On Error GoTo SortieErreur
        'Compteur de retour
        If xCompteur = Null Then
            xCompteur = 0
        Else
            xCompteur = xCompteur + 1
        End If
     
        Select Case ID
            Case 1:
                Clipboard.Clear
                Clipboard.SetText txtF7.Text, vbCFText
                SendKeys "^V"
            Case 2:
                Clipboard.Clear
                Clipboard.SetText txtF8.Text, vbCFText
                SendKeys "^V"
            Case 3:
                Clipboard.Clear
                Clipboard.SetText txtF9.Text, vbCFText
                SendKeys "^V"
            Case 4:
                Clipboard.Clear
                Clipboard.SetText txtF10.Text, vbCFText
                SendKeys "^V"
            Case 5:
                Clipboard.Clear
                Clipboard.SetText txtF11.Text, vbCFText
                SendKeys "^V"
        End Select
        Exit Sub
     
    SortieErreur:
        If xCompteur = 4 Then
            MsgBox "Erreur dans le Module. Erreur #: " & Err.Number & ", " & Err.Description
        Else
            Call HotKey_HotKeyPressed(ID)
        End If
    End Sub
    Mon GoTo récursif c'est pour éviter l'erreur "impossible de récupérer le presse papier" qui s'exécute lorsque la mémoire ne s'est pas réinitialiser.

    Je ne vois pas en quoi ça peut te rendre utile puisque j'ai mentionné que ça marche parfaitement en dehors du terminal. Je l'ai essayé sur plusieurs applications et tout fonctionne bien mais en terminal non.

    Si tu as d'autres questions soit plus précis

  6. #6
    Membre Expert
    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
    Par défaut
    Salut

    Heu... Deux questions:

    1. Pourquoi répéter l'instruction Sendkeys dans tous les cas du Select Case plutôt que de le mettre à la fin de celui ci (puisqu'il n'y a pas de Case Else)?
    2. Pourquoi ne pas utiliser la méthode getText du Clipboard (à la place de Sendkeys) et l'appliquer sur le contrôle actif (qui a le focus)?

  7. #7
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    C'est certain que je peux mettre le sendkeys à la fin.

    Pour ce qui est de la propriété focus je ne sais pas comment faire. Vous pouvez m'aider? C'est pour cela que mon titre c'est "coller sans le sendkeys"

    Merci

Discussions similaires

  1. [XL-2003] Copier/Coller sans incrémenter et sans figer
    Par dtrack dans le forum Excel
    Réponses: 2
    Dernier message: 11/05/2009, 14h49
  2. Copier Coller sans liaisons
    Par bmeda72 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/09/2008, 07h17
  3. Simuler un copier/coller sans passer par le clipboard
    Par Lefaucheux dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/06/2008, 15h28
  4. Copier coller sans incrémenter
    Par chrichnou051 dans le forum Excel
    Réponses: 2
    Dernier message: 23/04/2008, 16h06
  5. [VB6]Simuler le clavier sans sendkeys et keybd_event ?
    Par greg1386 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/01/2007, 00h02

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