Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Interaction entre programmes

    17 juin 2011 à 19:32:28

    Bonjour, je développe avec visual studio en C#, et j'aimerais savoir s'il est possible d’interagir avec d'autres programmes déjà ouverts, comme simuler l'appui d'une touche sur un programme tel que PowerPoint qui ferai passer à la diapositive suivante ?
    • Partager sur Facebook
    • Partager sur Twitter
      17 juin 2011 à 20:23:06

      Surement,en passant par de l'interop via les DLL fournies dans le pack office (On peut rajouter des filigranes avec Word automatiquement sur un document Word avec ça). Après, je saurais pas précisément comment.

      Edit : Sur MSDN avec "Interop PowerPoint" on tombe là dessus. Ca peut déjà être d'une aide certaine pour savoir dans quelle DLL chercher :D .
      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2011 à 20:26:39

        Et si je veux le faire avec un autre programme que l'un de la gamme office? J'ai entendu parler d'une méthode sendkey() mais je ne sais pas comment elle fonctionne ni comment la mettre en pratique. Si vous avez des exemple ? Merci.
        • Partager sur Facebook
        • Partager sur Twitter
          17 juin 2011 à 20:38:52

          Tant que ça reste dans la suite office (et ainsi que le présente le lien donné ci-dessus), tu devrais toujours pouvoir trouver une DLL d'interop (les dernières versions des composants Office se veulent relativement manipulable par des programmes tiers développés en .NET).

          SendKey (je connaissais pas), c'est une classe permettant d'envoyer des actions clavier à l'application active...De ce que je comprend, ça ne te permet pas de gérer une commande clavier inter-processus.

          Sinon, tu peux utiliser du PInvoke sur la fonction sendinput....Mais c'est pas gagné XD
          • Partager sur Facebook
          • Partager sur Twitter
            19 juin 2011 à 11:18:15

            Sinon tu utilises utilise l'API Win32 et la fonction "keybd_event()" qui permet de simuler l'appui sur une touche. Cherche sur MSDN tu aura plus d'infos là dessus. Par contre, ça simulera l'appui d'une touche sur la fenêtre qui a le focus, donc qui est active, pas sûr que ça soit possible de cette manière sur un programme qui ne l'a pas... Et si tu veux rendre aussi automatique le focus d'une fenetre faut utiliser la fonction FindWindow() et une autre fonction pour avoir le focus, mais je m'en souviens plus dsl x)
            • Partager sur Facebook
            • Partager sur Twitter

            [C#] Interaction entre programmes

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown