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

API, COM et SDKs Delphi Discussion :

Simuler un Ctrl+V !


Sujet :

API, COM et SDKs Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Simuler un Ctrl+V !
    Bonjour,

    J'ai un petit soucis, je n'arrive pas a simuler le coller du presse papier dans une application extérieure... cela ne marche pas avec les différente méthode que j'ai pu voir...

    Si vous pouviez m'aider sa serait super gentil

    Merci beaucoup d'avance ^^

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    J'ai fait ça il y a pas mal de temps.. et j'ai pas les codes sous la main.
    Mais en gros il faut :
    - Trouver une fonction qui te liste les handle de toutes les applications qui tourne sur ton PC.
    Une fois que tu as cette liste, ça te permet avec le Nom de l'exe de pouvoir trouver son handle.
    - Aprés il faut que tu récupère, un fonction pour donner le focus à l'autre application.
    - et dernier élément : faire une simulation clavier (je pense que c'est avec les messages windows).

    j'espère que je t'ai mis sur la voix. à l'époque j'avais trouvé des réponses sur www.mers.com
    mais je ne sais plus si ce service est toujours en fonction...

    à bientôt.
    désolé de pas avoir les codes à porté de main.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Hum et bien en faite je ne souhaite pas faire une chose aussi compliqué dans mon application, j'aurait juste aimer par exemple avoir la commande qui fait
    SendKey => Ctrl+V...

    Je sais pas si vous voyez ce que je veut dire

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    KeyEvents pour cela.

    Il faut que la fonction fasse les actions dans cet ordre suivant :

    1- Activé la touche CTRL (Faire comme si elle etait appuyée)
    2- Activé la touche V (Idem)
    3- Désactivé la touche V (Comme si elle etait relachée)
    4- Désactivé la touche CTRL (idem)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Citation Envoyé par Nutspower
    Hum et bien en faite je ne souhaite pas faire une chose aussi compliqué dans mon application, j'aurait juste aimer par exemple avoir la commande qui fait
    SendKey => Ctrl+V...

    Je sais pas si vous voyez ce que je veut dire

    SendMessage(LeControl.Handle, WM_Paste, 0, 0);

    tout simplement.
    Si le contrôle gère le coller ça marchera, sinon rien ne se passera, c'est ce qu'il y a de plus propre et qui ne nécessite pas de simulation clavier des touches ctrl + v.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    SendMessage(LeControl.Handle, WM_Paste, 0, 0);
    Le petits soucis c'est que l'application qui recois le coller varie, ce n'est pas toujours le meme logiciel ...

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    et voilà ici même des infos super intérressantes :

    pour récupérer la liste des processus ...

    Comment récupérer les handles des fenêtres d'un processus ?
    http://www.developpez.com/delphi/faq...=systemedivers

    en MSDN - Fonction GetWindowThreadProcessId
    http://msdn.microsoft.com/library/en...ssId.asp<br />
    MSDN - Fonction EnumWindows
    http://msdn.microsoft.com/library/en...numWindows.asp

    Comment lister les processus actifs ?
    Comment lister les threads d'un processus ?
    Comment lister les modules d'un processus ?

    Voilà des articles qui pourront être utile à la résolution du PB.. j'ai pas fait le copier coller des codes sources.. par souci de gain de place !! et de surchage.. mais bon....

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Il n'y a aucun autre moyen plus simple ? comme faire un sendkey sur ctrl+v en meme tps ?

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    Si mes souvenirs sont bon, le SendKey envois bien des codes clavier à l'application qui as le focus...

    Hors cette application.. c'est elle même non ??? donc ça se mort la queue..

    Je pense que pour l'envoyer vers une autres application, il te faut bien connaitre le handle de celle-ci. et envoyer des messages windows de type Event... en spécifiant le handle de l'application cible...

    enfin je me trompe peut être.. mais à mon avis ça marche comme ça...

    good luck !!!

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par ffert2907
    Si mes souvenirs sont bon, le SendKey envois bien des codes clavier à l'application qui as le focus...
    Oui c'est justement sa! d'ailleur c'est ceux que je souhaite, que sa envoie le code à l'application qui a le focus, et non elle meme forcement...
    Mais je n'arriver pas a utiliser SendKey pour les touche Ctrl+v ^^

    EDIT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    keybd_event(VK_CONTROL,0,0,0); //touche enfoncé
    keybd_event(86,0,0,0); //touche enfoncé
    keybd_event(86,0,KEYEVENTF_KEYUP,0); //touche enfoncé
    keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); //touche relevé
    j'ai fini par trouver, merci a tous

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

Discussions similaires

  1. simuler la combinaison ctrl + w
    Par pascb423 dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/07/2009, 15h03
  2. Réponses: 2
    Dernier message: 25/08/2006, 10h49
  3. simuler Ctrl+Z dans une zone de texte
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2006, 14h19
  4. [MFC]Simuler CTRL+HOME avec PostMessage
    Par corwin_d_ambre dans le forum MFC
    Réponses: 4
    Dernier message: 27/01/2006, 11h48
  5. Simuler un Ctrl+C Ctrl+V
    Par VincenzoR dans le forum Composants
    Réponses: 5
    Dernier message: 15/05/2004, 15h02

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