Hallo allerseits,
ich beschäftige mir seit kurzem mit AutoIT, denn ich möchte eine Windows-Anwendung auf der Arbeit (ein Workflow-Management-System aus dem Übersetzungsbereich) dazu bringen, bestimmte Abfolgen von Klicks und Eingaben auf Knopfdruck abzuspulen, da ich hierzu zu faul bin ![]()
Vorweg, es ist mir auch schon gelungen ![]()
Zwei Probleme habe ich allerdings noch:
Ich muss in ein Feld (ein 10-spaltiges und vielzeiliges, in die Anwendung integriertes Feld der Klasse "WindowsForms10.Window.8.apps" einen Focus setzen, um hierin eine Auswahl machen zu können. Sichtbar macht man dieses Feld über einen Knopf am linken Bildrand (Send {F5}). Nach ersten billigen Versuchen mit Koord.-Mausklicks (pfui) habe ich die Advanced (Class) Nomenklatur dieses Feldes verwendet, wie in
ControlClick ("SDL TeamWorks [Server1]", "", "[CLASS:WindowsForms10.Window.8.app4; INSTANCE:29]").
Grund: das Skript soll bei fenster max., min und allem dazwischen funktionieren, und das auf Systemen mit 1 oder 2 Monitoren mit verschiedenen Auflösungen.
Die Control-ID zur Identifizierung ist leider nutzlos, sie ändert sich ständig (evtl. .NET?). INSTANCE erschien mir super. Leider hat bei ca. 30 Neustart-Versuchen auch manchmal die INSTANCE gewechselt, allerdings immer nur zwischen INSTANCE:29 und INSTANCE:10. 100%ige Sicherheit habe ich hier also nicht.
Kann ich das Feld irgendwie ohne Unsicherheit focussieren? Wenn nicht: kann ich sowas sagen wie:
-guck welche Instanz es diesmal ist
-entsprechend mach click("name", "class", "instance)
Frage 2: die meisten Mitarbeiter haben Dual-Monitors, hauptsächlich 2x 19" TFT. Manche haben den Hauptmonitor links, manche rechts. WENN man mit Koordinaten arbeitet, scheint das immer nur auf dem Primärmonitor zu funktionieren. Ich hatte nämlich schon erwogen, die Anwendung im Skript erst zu maximieren und dann doch mit Koordinaten zu arbeiten, aber wo das Programm maximiert wird, hängt von der zuletzt gewählten Position dieses Fensters ab. Gibt es hierzu Kontrollmöglichkeiten?
Die Firma dankt ![]()
Schönen Gruß
hoesenking