Daten aus TeamViewer portieren

  • VB.NET

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

    Daten aus TeamViewer portieren

    Hallo Leute,

    ich habe eine Adressdatenbank, in der nach Kunden sortiert "Verbindungen" angelegt werden können, für die eine TeamViewer ID und ein TeamViewer Passwort hinterlegt wird.
    Mit den TeamViewer Aufrufparametern stelle ich automatisch eine VPN-Verbindung zu der angegebenen TeamViewer ID her, ohne dass der Benutzer die Daten im TeamViewer eingeben muss:

    Quellcode

    1. teamviewer.exe -i <ID> --Password <Passwort> -m vpn


    TeamViewer öffnet nach erfolgreichem Aufbau der Verbindung ein Fenster mit eine Textbox, in der die "IP des Partners" angezeigt wird.



    Wie kann ich diese IP aus dem Programm-Textfeld in meine VB.Net Anwendung kopieren/portieren?
    Oder allgemein formuliert: Wie kann ich den Inhalt eines Textfeldes einer anderen Anwendung/eines anderen Programmfensters kopieren?

    Ich stehe da echt auf dem Schlauch und wäre über Hilfe wirklich sehr dankbar... :)

    Viele Grüße,
    JoRu1407

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JoRu1407“ ()

    Mir sieht das etwas anders aus.
    Willst Du aus einer fremden Anwendung einen Text aus einem Fenster auslesen?
    Sieh Dir zunächst die Anwendung / den Dialog mit Spy++ an und identifiziere den Namen des auszulesenden Fensters.
    Dann solltest Du Dich ein wenig mit der API befassen: API.FindWindow() und API.EnumWindows(), um an das Handle Deines Ziel-Fensters zu gelangen.
    Dazu findest Du genügend Beispiele im Forum.
    Und dann holst Du Dir mit API.GetWindowText() Deinen Text raus.
    Die richtigen Deklarationen nimm bitte von pinvoke.net, nicht aber aus dem Forum, da hier viele falsche Deklarationen runschwirren.
    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!
    Ich verstehe im Moment irgendwie gar nichts mehr...

    Zuerst soll ich den Namen des auszulesenden Fensters identifizieren? >> Den Namen kenne ich doch, oder?
    Wie defineire ich bei "API.GetWindowText()" aus welchem Control bzw. Textfeld der Wert genommen werden soll?

    Ist das wirklich so aufwändig, den Inhalt eines Textfeldes einer anderen Anwendung auszulesen?

    Sorry, aber ich bin auf dem Gebiet wirklich noch absouluter Anfänger... :(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JoRu1407“ ()

    So, ich habe jetzt mal ein bisschen mit WinSpy++ rumprobiert und hier ist der Screenshot des auszulesenden Textfeldes und dessen Parents:



    Allerdings stehe ich jetzt wieder auf dem Schlauch:

    Auf dem Screenshot im ersten Post sieht man ja, dass das rot umkreiste Textfeld, welches ausgelesen werden soll, innerhalb einer Group-Box liegt.
    Warum zeigt mir WinSpy++ die Textbox nun nicht als Child der Group-Box?

    Wie muss ich mit den API-Funktionen jetzt weiter verfahren? Ich Blicke da was die Funktionsweise und Verwendung angeht noch nicht ganz durch... ;(

    <Nachdenken an>
    Könnte man nicht das Fenster in den Vordergrund setzen,
    mittels virtuellen TABs in das entsprechende Textfeld springen, dessen Inhalt mit einem virtuellen Strg+A und Strg+C in die Zwischenablage kopieren und im Programm wieder einfügen?
    <Nachdenken aus>
    Spy falsch bedient. Lösch alle Fenster und klick auf das Fernrohr.
    Klick auf das Symbol im roten Kringel und zieh es aud Dein Zielfenster.
    "Beschriftung" ist dann der Text, den Du auslesen willst.
    "Klasse" ist Edit - eine TextBox halt, grün umkringelt
    "Handle" ist der Wert, den Du über FindWindow und EnumWindows ermitteln musst, blau umkringelt.
    -----
    Vorgehen:
    Du musst das ganze 2x programmieen.
    1. identifizieren, lfd. Nummer ermitteln:
    Du enumerierst die Fenster, Dein Zielfenster hat immer die laufende Nummer n (musst Du feststellen - identifizieren).
    Nach dem Feststellen dieser laufenden Nummer wird dieser Programmteil nicht wieder benötigt.
    2. Du enumerierst die Fenster, bis Du lfd. Nr. n erreicht hast, mit dem zurückgegebenen Handle liest Du den Text aus. Fertich.
    -----
    Du musst jetzt entscheiden, ob das das ist, was Du willst.
    Ich werde Dich nicht ans Händchen nehmen, bis Dein Code einigermaßen läuft, sondern Du machst Deine Hausaufgaben und fragst gelegentlich, wenn es Probleme gibt.
    Such bei Frau Google, da gibt es mit Sicherheit sehr ähnlichen Code zun C&P'en.
    Bilder
    • Spy.JPG

      24,78 kB, 323×288, 238 mal angesehen
    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!
    @klavierduo: Welches Control in welchem Fenster hat denn da den Fokus?
    Wenn es ReadOnly ist, geht das nicht
    falls Du an SendKeys gedacht hast.
    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!