[C#] Copy & Paste mit zwei verschiedenen Anwendungen ?

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    [C#] Copy & Paste mit zwei verschiedenen Anwendungen ?

    Hallo zusammen,

    folgende Situation: Ich habe einen Adressprüfer, womit ich täglich die Kundenadressen der Bestellungen prüfe. Derzeit noch mit dem MouseRecorder..

    Sprich: Ich öffne den Auftrag, kopiere und füge die Adresse, Hausnummer, PLZ, Ort in den Adressprüfer ein. Lasse prüfen, und kopiere es wieder zurück in die Warenwirtschaft.

    Das ist sicherlich mit C# möglich, allerdings weiß ich ehrlich gesagt nicht wo ich anfangen soll..

    Gibt es die Möglichkeit der Anwendung zu sagen, klicke STRG+A STRG+C an Mausposition X Y ?

    Ich würde das gerne als C# Windows Forms App programmieren mit einem Button zur Überprüfung. Da der Adressprüfer online ist, könnte man ihn mit in die Form einbinden.

    Bin sehr dankbar für jede Hilfe!
    Ja, das geht, ist aber insofern eklig, weil man viel Arbeit vor sich hat und etwas im Trüben fischt. Du musst mittels WinAPI FensterHandles ermitteln und Dein Zielfenster aktivieren/in den Vordergrund bringen. Alternativ (vermeintlich einfacher) kann man zwar Eingabedaten auch an das aktive Fenster schicken, das birgt allerdings die Gefahr, dass man im falschen Fenster ist, z.B. weil sich - warum auch immer - ein anderes Fenster noch schnell in den Vordergrund drängelt. Das meine ich mit "im Trüben fischen".
    Dann mit SendInput oder SendKeys die Eingabedaten schicken. SendInput ist meiner Erfahrung nach zwar sicherer (dass die Daten ankommen, was bei SendKeys nicht gewährleistet ist (ich schreibe aus Erfahrung, daher auch hier "im Trüben fischen")), aber auch komplizierter in der Implementierung.
    Vielleicht stößt Du noch auf die ich-schicke-Windows-Eingabe-Nachrichten-an-das-Zielfenster-Methode. Verfolge nicht diesen Pfad. Er führt in eine Sackgasse. Auch hier spreche ich aus Erfahrung. Einfachen Text kann man damit schicken. Aber bei Strg+C ist nix mehr möglich. Windows ist dafür nicht konzipiert, an ein sich-nicht-im-Vordergrund-befindliches Fenster simulierte Eingabedaten zu schicken und es wird scheitern. Meiner Erfahrung nach.

    ##########

    Ggf. reicht auch das Auslesen und Schreiben der Zielfenstertexte mittels SendMessage. Allerdings hatte ich auch schon Apps gesehen, die das Schreiben mittels SendMessage zwar scheinbar akzeptierten, effektiv jedoch keine Änderung in der dahinterliegenden Datenbank anstießen, da keine echte Eingabe registriert wurde. Muss man ausprobieren.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    @xandrosz Probiere es mal mit D&D, das Zauberwort heißt DoDrag.
    Du musst ein gemeinsames Format registrieren und feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!