VBA: Schaltfläche in externem Programm ansprechen

Hallo Experten,

ich bin gerade dabei, etwas mit VBA zu experimentieren. Ich habe vor, mittels VBA ein externes Programm zu öffnen und dort dann einen Klick auf eine Schaltfläche/Button zu simulieren.

Ich benutze für meinen Test als externe Anwendung das Freeware-Programm Teamspeak (vielleicht kennt es jemand).

Die Anwendung konnte ich problemlos starten, doch wie kann ich jetzt VBA mitteilen, klicke oben auf „Connection“?

Mein bisher winziger Code sieht so aus:

Sub Teamspeak()
Shell („c:\Programme\Teamspeak2_RC2\Teamspeak.exe“)
End Sub

Gruß
Imhotep

Hi Imhotep

Die Anwendung konnte ich problemlos starten, doch wie kann ich
jetzt VBA mitteilen, klicke oben auf „Connection“?

Mein bisher winziger Code sieht so aus:

Bin mir nicht ganz sicher, aber gabs nicht mal einen Befehl mit denen man Tastaturbefehle unter VBA imitieren konnte? Und da kann man dann tatsächlich Dinge wie „Strg“ + „F“ oder die Tab-Taste „ausführen“ lassen.

Ich hoffe du findest es
LG Tobias

Hallo,

Bin mir nicht ganz sicher, aber gabs nicht mal einen Befehl
mit denen man Tastaturbefehle unter VBA imitieren konnte? Und
da kann man dann tatsächlich Dinge wie „Strg“ + „F“ oder die
Tab-Taste „ausführen“ lassen.

ja, Sendkeys(). Da kann man aber nicht steuern, wo der Tastenanschlag hin kommt, der geht immer an das gerade aktive Fenster, das ist recht unsicher.

Gruß Rainer

Hallo,

ich bin gerade dabei, etwas mit VBA zu experimentieren. Ich
habe vor, mittels VBA ein externes Programm zu öffnen und dort
dann einen Klick auf eine Schaltfläche/Button zu simulieren.

Wenn Du noch wenig Übung im Umgang mit API Aufrufen hast, sieh Di mal die API-Guide an, der Link steht in der [FAQ:2681]

Du musst Dir das Handle der Anwendung holen (z.B. mit GetActiveWindow), die Handles der Child-Windows ermitteln, herausfinden welches der Button ist, den Du klicken möchtest und dann entweder dessen Position errechnen oder gleich mit Sendmessage den Mausklich an die Anwendung schicken.

Leider haben manche Button kein eigenes Handle, wie z.B. in VBA-Programmen, da hat nur die Form ein Handle. Ein Button in einem VBA-Programm ist nicht zu finden. Wenn Du das Handle des Buttons nicht findest, musst Du mit der Position des Fensters auskommen, rechnen wo der Button ist und dort hin klicken, Dich darauf verlassen, daß der Button nicht von einem anderen Fenster verdeckt ist.

Gruß Rainer

Wenn Du noch wenig Übung im Umgang mit API Aufrufen hast, sieh
Di mal die API-Guide an, der Link steht in der [FAQ:2681]

Danke, ich werde mir den Guide mal durchlesen.

Gruß
Imhotep