Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

AppActivate verhindert SetCursorPos

AppActivate verhindert SetCursorPos
17.04.2019 08:45:25
HErmann
Gestern habe ich mit einem Makro begonnen, mit welchem ich eine Anwendung aus dem Jahre 2004 fernsteuern möchte.
Mit
AppActivate "HiCAD neXt"
aktiviere ich in einem ersten Schritt das entsprechende Programm.
Mit
Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long
und
SetCursorPos -2530, 30
Will ich nun den Cursor über die Menüleiste bewegen. Danach dann ein erster Linksklick. Der Cursor bewegt sich heute aber nur noch, indem ich mit ' das Aktivieren der Anwendung unterdrücke. Das ist aber nicht Sinn der Sache. Die Krux dazu noch: Gestern lief das Ganze noch.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AppActivate verhindert SetCursorPos
17.04.2019 10:44:18
Martin
Hallo HErmann,
dein Weg zur "Fernsteuerung" der anderen Anwendung ist sehr fehleranfällig (...wie du gerade selbst feststellen musst). Auch ich steuere ein anderes Programm komplett fern, jedoch ohne dabei den Fokus wechseln zu müssen.
1. Möglichkeit
Wenn du Glück hast, kannst dein Programm über die Objektbibliothek ansteuern. Das klappt bei allen Microsoft Office Programmen und auch einigen Programmen anderer Hersteller (z.B. Adobe).
2. Möglichkeit
Manche Programme lassen sich auch per Kommandozeile ansteuern (z.B. PDFTK, SendEmail usw.)
3. Möglichkeit
Nahezu alle Programme lassen sich per WindowHandle ansteuern, denn jedes Control (TextBox usw.) erhält eine eigene HandleID. Lade dir die Freeware WinSpy herunter, damit kannst du "manuell" alle HandleIDs ermitteln. Mit API kannst du später dynamisch alle HandleIDs ermitteln und Controls ansteuern (z.B. anklicken oder Inhalte setzen), ohne dabei die Mausposition verändern oder SendKeys verwenden zu müssen.
Als Einstieg ist dieser Post recht hilfreich: http://www.office-loesung.de/ftopic644881_0_0_asc.php
Leider gibt es auch hier wenige Ausnahmen, wo es nicht klappt (z.B. Mozilla Firefox)
Viele Grüße
Martin
Anzeige
Link zu WinSpy
17.04.2019 10:53:06
Martin
Hier noch der Link zu WinSpy: https://sourceforge.net/projects/winspyex
Ich gebe zu, dass auch ich eine Weile gebraucht habe alle Klassen und Controls korrekt zu ermitteln, aber der Aufwand hat sich wirklich gelohnt. Früher habe ich ebenfalls mit simulierten Mausklicks und Tastatureingaben (SendKeys) gearbeitet. Das hat zwar auch häufig funktioniert, aber es sind immer mal wieder irgendwelche Fehler aufgetreten.
AW: Link zu WinSpy
18.04.2019 11:35:21
HErmann
Hallo Martin
Danke für deine ausführliche Antwort.
Ich denke, dass Möglichkeit 1 und 2 ausser Betracht fallen. Sie sind in den Unterlagen zum Programm nirgends beschrieben. Ich kann die einzelnen Punkte in der Menüleiste nicht mal mit der ALT-Taste öffnen, da ist wohl eine Objektbibliothek auch nicht vorhanden.
Möglichkeit 3 überfordert mich wohl noch ein bisschen. Von API habe ich leider wirklich keine Ahnung.
Aber nochmals vielen Dank!
Anzeige

14 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige