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

Delphi Discussion :

Simuler la combinaison "Ctrl+v"


Sujet :

Delphi

  1. #1
    Membre très actif
    Inscrit en
    Décembre 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 258
    Par défaut Simuler la combinaison "Ctrl+v"
    Bonjour, je cherche a coller le contenu du press_papier on utilisant keybd_event ou postmessage

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 001
    Par défaut
    Simuler un Ctrl+V ! ... un sujet de 2006, à tenter ... mais je suppose que l'avais déjà trouvé avant de poser la question, quel est ton problème ?
    Il te manque le Handle ?

    WM_PASTE faut juste l'envoyer et avant d'avoir dans le presse-papier, selon le control ciblé, il ira chercher ce qu'il lui faut, un Edit par exemple ne prend que le CF_TEXT
    C'est directement le Handle du Control et non celui de l'application/fenêtre

    Si tu peux envoyer le texte directement comme dans le sujet Envoyer une chaine a une application externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                       SendMessage(HwndEdit, WM_SETTEXT, 0, Longint(lpString)); // lpString est un PChar
                       SendMessage(HwndEdit, CM_TEXTCHANGED, 0, 0); // HwndEdit FindWindow fourni via le nom, faut connaitre comme est fichu l'application cible

    Enfin ça doit être un truc comme ça
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    keybd_event(VK_CTRL, 0, 0, 0);
    keybd_event(0x4C, 0, 0, 0);
    keybd_event(0x4C, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_CTRL, 0, KEYEVENTF_KEYUP, 0);

    la version plus ambitieuse, je te laisse traduire le C
    Code c++ : 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
    void Paste()
    {
        INPUT inputs[4] = {};
        ZeroMemory(inputs, sizeof(inputs));
     
        inputs[0].type = INPUT_KEYBOARD;
        inputs[0].ki.wVk = VK_LWIN;
     
        inputs[1].type = INPUT_KEYBOARD;
        inputs[1].ki.wVk = 'L';
     
        inputs[2].type = INPUT_KEYBOARD;
        inputs[2].ki.wVk = 'L';
        inputs[2].ki.dwFlags = KEYEVENTF_KEYUP;
     
        inputs[3].type = INPUT_KEYBOARD;
        inputs[3].ki.wVk = VK_LWIN;
        inputs[3].ki.dwFlags = KEYEVENTF_KEYUP;
     
        UINT uSent = SendInput(ARRAYSIZE(inputs), inputs, sizeof(INPUT));
     
    }
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2016, 19h19
  2. Est-il possible de simuler la combinaison de touches CTRL + F5 ?
    Par beegees dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/08/2009, 18h30
  3. simuler la combinaison ctrl + w
    Par pascb423 dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/07/2009, 15h03
  4. Réponses: 20
    Dernier message: 27/11/2007, 14h40
  5. Réponses: 2
    Dernier message: 25/08/2006, 10h49

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