A.exe steuert B.exe
-
Hallo Miteinander,
eines vorweg ich bin noch blutiger Anfänger, daher habt Nachsicht wenn es diese Frage schonmal gab. Hab jedoch nichts vergleichbares beim suchen gefunden.Ich möchte gerne eine NICHT von mir geschriebene Anwendung (B.exe) mit einer von mir geschriebenen Anwendung (A.exe) steuern. Genau genommen eine Textbox aus Anwendung B auslesen in Anwendung A verarbeiten. Das Ergebnis in eine Textbox in Anwendung B wieder einfügen und über einen Button in Anwendung B bestätigen.
Bei der Anwendung B handelt es sich um keine Office Anwendung, da ich hierfür Beispiele in einem Buch habe.
Was ich bis jetzt so rausgefunden habe, brauch ich den handle der entsprechenden Objecte. In der Art wohl wie es Spy++ bei meiner VisualC++ .NET Standart Edition tut. Aber da verließen sie mich schon.
So ein Schubser in die richtige Richtung würde mir sehr helfen. Oder aber ist das einfach zu schwer für den Anfang.
-
Ganz ehrlich? Fang mit etwas einfacherem an oder programmier die Anwendung B einfach selbst und implementiere sie in die Anwendung A gleich rein.
Wie du richtig festgestellt hast, musst du als erstes herausfinden, welche Prozess-ID das Programm B hat und dann speziell noch die entsprechenden Handles finden. Wäre das eine Office Anwendung, so wäre das easy, da diese alle VB-Skripts akzeptieren und sehr schon untereinander damit agieren können. Das ist jetzt aber nicht der Fall, so dass du IMHO ziemlich viel "Speicherprogrammierung" machen musst, was als Anfänger vielleicht nicht so optimal ist. Selbst in einigen Bücher für Fortgeschrittene wird dieses Thema nur kurz angeschnitten, du müsstest also die MSDN wälzen, was widerum recht zeitintensiv ist und nicht gleich zu Erfolgen führt, womit die Motivation (grad als Anfänger) doch recht schnell schrumpft.
Also, solltest du doch damit anfangen wollen, so sieh zu, dass du mal ein wenig Literatur darüber rankarrst und dich mit dem ganzen (Windows-)Speicher-Zeugs beschäftigst.
Gruß
physici
-
Danke für die schnelle Antwort.
Die Anwendung B ist halt von einem Fremdhersteller, wenn ich sie selber schreiben könnte, würde ich sehr wahrscheinlich auch das andere hin bekommen.
Ich habe nicht gedacht, dass es so schwer ist das Form dieser Anwendung anzusprechen. Hatte mir gedacht es gibt eine Funktion mit der ich z. B. über den Fensternamen an die ProcessID komme, dann an die Handle und zu letzt an den Inhalt der Textbox.
Aber gut dann werde ich wohl doch noch etwas weiter mich da rein fuchsen müssen. Die eigentliche Motivationsbremse sind dann solche Dinge, die man sich leicht vorstellt und dann doch ein kleines unscheinbares Projekt zu einem unüberwindlichen Hindernis werden lassen.
Nochmals Danke!
-
Frank_K schrieb:
Die eigentliche Motivationsbremse sind dann solche Dinge, die man sich leicht vorstellt und dann doch ein kleines unscheinbares Projekt zu einem unüberwindlichen Hindernis werden lassen.
I know
-
Ein Blick/Frage ins WinAPI Forum könnte helfen (auch die FAQ dort)
-
Danke nochmals für die Hilfe. Ich werde mich bei den genannten Quellen mal umschauen. Mir sind halt bestimmte Begriffe noch nicht so geläufig.
-
Ich hab vor ewigkeiten mal ein Testprogramm geschrieben das Fenster in einer Liste aufgenommen hat.
Ich schmeiss DIr darauf einfach mal ein paar Brocken zu, die Dir in der WinApi suchen helfen könnten, aber vermutlich nur auf umwegen:GetActiveWindow
GetTopWindow
GetWindowRect
FindWindowEx
GetWindow
GetWindowTextund wenn ich mich recht entsinne, sind Buttons etc am Ende auch nur Fenster. Schau mal, sollte Dir weiterhelfen können. Aber spassig wird die Suche nicht dafür macht das Experimentieren spaß und lässt ne menge Programme entstehen die eigentlich keiner will