[German] AutoHotFlow (AutoMagic Klon für Windows)

General discussions about Automagic and automation in general

Moderator: Martin

User avatar
TheBrain1984
Posts: 137
Joined: 07 Aug 2013 08:17
Location: Germany

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by TheBrain1984 » 21 Jan 2015 16:26

Hi,

ich habe mir mal Gedanken bzgl. Kopplung zu AM gemacht und hoffe, dass ich dir mit meinen Anmerkungen nicht zu Nahe trete oder ähnliches.

In Prinzip müsste ja zu der flow.xml bzw. exported_data_*.xml, welche nach einem Export entsteht eine XSD irgendwo existieren die in dem Abschnitt in denen die actions beschrieben werden, trotz der vielen unterschiedlichen "Actiontypes" ziemlich ähnlich aufgebaut sein sollten, nämlich etwas in der Richtung

Code: Select all

<Feldname>value des Felds</Feldname>
Du müsstest also eigentlich zur Visualisierung von bestehenden Flows alle innerhalb der "< >" befindlichen Feldnamen und deren values anzeigen.

Der umgekehrte Fall (sprich das erzeugen eines validen Flows für AM aus AutoHotFlow heraus) ist m.E. tatsächlich deutlich schwieriger, du müsstest quasi eine XSD haben die alle Actions beschreibt und dir die entsprechenden möglichen Feldnamen sowie den Datentyp des values mitteilt, aber auch hier sollte es normalerweise möglich sein, dass du AutoHotFlow so schreibst, dass du diese XSD irgendwo hinlegst und das Tool für dich die Arbeit macht. Ich dachte dabei in die Richtung, dass die XSD analysieren lässt, welche Actions es gibt und dann eben welche Felder die Actions hat und je nach Datentyp das entsrepchende Eingabefeld dem Typ zuweist.

Da ich nicht weiß in welcher Sprache du arbeitest und wie weit meine Ideen vom bereits bestehenden Quellcode abweichen, weiß ich natürlich auch nicht in wie weit dies überhaupt noch realisierbar ist, aber ich habe mir gedacht, ich lasse es einfach mal als Anregung da.

Grüße
Manuel

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 06 Feb 2015 17:29

Die Kommentare im Forum haben mich wieder motiviert und ich habe eifrig weitergearbeitet. :)

Die Ausführung des Flows hat bisher noch nicht sauber funktioniert. Die lokalen Variablen waren auch nach einer Ausführung vorhanden und waren für alle Ausführungen gleich. Außerdem kam es zu Fehlern, wenn ein und dasselbe Element mehrfach gleichzeitig ausgeführt wurde. Dies habe ich nun geändert und die Ausführung sollte jetzt genau wie in AutoMagic funktionieren. Das heißt, jede Ausführung hat eigene lokale Variablen und es können beliebig viele Ausführungen gleichzeitig stattfinden, ohne dass sie sich gegenseitig stören.
Ich habe dabei auch die Flow Ausführungsregeln, wie bei AutoMagic, eingeführt.
Image

Jeder Action-, Condition- und Trigger-Typ hat nun eine Kategorie. Bei der Auswahl eines Element-Typs muss man zunächst die Kategorie aufklappen, um das Element auswählen zu können. Ich plane noch, manchen Elementen mehrere Kategorien zuzuweisen, damit diese leichter gefunden werden können.
Image

Es können bei manchen Elementen auch Fehler abgefangen und rote "Exception" Verbindungen erstellt werden.

Es gibt folgende neue Actions: Tippen, Computer sperren, Abmelden, Computer in Ruhezustand versetzen, Computer in Standby versetzen, Computer neustarten
Es gibt folgende neue Conditions: Taste wird gedrückt, Fenster ist offen, Fenster ist aktiv
Es gibt folgenden neuen Trigger: Fenster schließt

@Manuel
Ich dachte mir auch, dass es ähnlich einfach ist, die xml Dateien einzulesen. Aber beim Versuch das zu machen gab es einige Schwierigkeiten in Detail. Ich finde jetzt sowieso, dass das AutoHotFlow Projekt interessanter ist.

Download
Im Download sind ab jetzt immer die ausführbaren Dateien dabei.

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 08 Feb 2015 17:24

Ich habe weiter dran gearbeitet.

Es gibt folgende neue Actions: Flow ausführen, Flow stoppen, Flow Status ändern, Tasten an ein Steuerelement senden, Starten
Es gibt folgende neue Conditions: Flow aktiv, Flow wird ausgeführt

Bei Flow starten gibt es sämtliche Optionen, wie in AM. Die lokalen Variablen können an das Ziel-Flow gesendet werden und nach Ausführung wieder empfangen werden.
Image

Beim Action "Tasten an ein Steuerelement senden" gibt es ein tolles Feature. Es gibt einen Assistenten, der bei der Auswahl des Steuerelements sehr hilfreich ist. Zunächst wird ein Fenster markiert, dann muss man F12 drücken, dann wird ein Fenster mit allen erkannten Steuerelementen angezeigt. Man kann eines davon auswählen und mit einem roten Rahmen wird am Zielfenster angezeigt, wo sich das Steuerelement befindet. Oder man fährt mit der Maus über das Fenster und das darunterliegende Steuerelement wird ausgewählt und hervorgehoben.
Image
Weitere Elemente zur Manipulation von Steuerelementen oder Holen von Informationen darüber werden folgen.
Einen ähnlichen Assistenten gibt es auch bei der Auswahl des Fensters bei den Elementen, die was mit Fenstern machen.

Mithilfe des Actions "Starten" kann man beliebige Dinge starten, wie Programme, Dokumente, Links, usw.

So langsam nimmt das Programm Gestalt an und kann sicherlich für einige Sachen gut sein. Zum Beispiel kann nervige Fenster automatisch schließen. :D

Download

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 11 Feb 2015 18:39

Und weiter gehts :D

Diesmal habe ich meine Aufmerksamkeit der Bedienbarkeit gewidmet. Die Bedienung war bisher eher zweckmäßig und ohne jeden Wow-Effekt. Ich hoffe das ist mir diesmal gelungen.
Die Bedienung ist nun sehr ähnlich wie in AM. Wenn ein Element markiert wird, erscheinen, genau wie in AM, mehrere Icons zum Bearbeiten, Löschen und evtl. Erstellen neuer Verbindung. Zusätlich gibt es zwei Menüelemente im Bild, mithilfe derer man ein neues Objekt einfügen kann. Die alten Menüelemente habe ich entfernt. Zusätzlich gibt es ein neues Menü im Bild, mithilfe derer man ein neues Objekt einfügen kann.
Image
Auf das Auswahl-Icon, der in AM über einem ausgewählten Element erscheint, habe ich verzichtet, da mein Programm keine Elementenliste pflegt und ich diese Funktion in AM so gut wie nie nutze.

Was ganz wichtiges fehlt noch: Es gibt noch keine Möglichkeit, Elemente zu kopieren und woanders einzufügen. Das kommt aber bald.
Was auch noch passieren kann, dass man weit wegscrollt und sich hoffnungslos verirrt :o . Das Zoomen muss auch noch verbessert werden, damit man immer in Richtung des Mauszeigers scrollt.

Download

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 15 Feb 2015 17:13

Ein weiterer Meilenstein wurde erreicht. :)
Lange hat mir ein Problem Kopfzerbrechen bereitet. Es geht darum Ausdrücke zu evaluieren. Das ist eine ziemlich elementare Funktion, die ich auch in AM sehr häufig benutze, und hat daher hohe Priorität. Im AutoHotKey Forum hatte ich schon zwei verschiedene Lösungen gefunden, um sogar kompletten Code ausführen zu lassen, aber sie waren nicht geeignet, da man in AHF zum Holen und Setzen von Variablen bestimmte Funktionen aufrufen muss. Nach langem Suchen habe ich eine schöne Seite gefunden, wo auf einfache Weise erklärt wird, wie solche Auswertealgorithmen geschrieben werden. Es werden folgende Operatoren unterstützt:
= (gleich, nicht case sensitive), == (gleich, case sensitive), !=, <, >, <=, >=, +, -, *, /, || bzw or, && bzw and, ! bzw not.
Die Möglichkeit einen Ausdruck zu evaluieren gibt es in der Aktion "Neue Variable" und in der Bedingung "Ausdruck"

Man kann nun Elemente kopieren und einfügen.
Das Zoomen habe ich verbessert und in einer Statusleiste wird nun die aktuelle Position angezeigt, damit man wieder zurückfindet, falls man sich verirrt ;)

Es gibt folgende neue Actions: Zwischenablage holen, Zwischenablage setzen
Es gibt folgende neue Conditions: Berechnung (Ausdruck)
Es gibt folgende neue Trigger: Zwischenablage hat sich geändert

Download

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 17 Feb 2015 14:24

Und weiter geht's! Dies mal hatte ich kaum grundsätzliche Fragen zu klären, sondern habe ganz viele neue Elemente hinzugefügt.
Das Fenster mit den Einstellungen lässt sich nun scrollen. Dies ist für den Fall, dass es viele Einstellungen gibt und ein kleiner Monitor verwendet wird, nützlich.

Es gibt folgende neue Aktionen: Prozess killen, Prozess Priorität setzen, Fenster killen, Traytip, Nachrichtenfenster, Eingabedialog, Sprachausgabe, Sound spielen, Sound stoppen, Piepsen, Lautstärke setzen, Lautstärke holen
Es gibt folgende neue Bedingungen: Prozess läuft
Es gibt folgende neue Auslöser: Hochfahren, Tageszeit, Benutzerinaktivität, Prozess startet, Prozess schließt

Ab jetzt stelle ich nicht bei jedem Beitrag einen Download Link zur Verfügung. Im ersten Beitrag kann man nun stets die aktuelle Version herunterladen.

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 19 Feb 2015 20:33

Und weiter geht's :)
Wieder habe ich hauptsächlich neue Aktionen gemacht.

Es gibt folgende neue Aktionen: Maus bewegen, Klicken, Mit Maus ziehen, Maus Position holen, Fenster verschieben, Alle Fenster minimieren, Fenster zeigen, Fenster verstecken, Text aus einem Bedienelement holen, Text eines Bedienelements setzen, In Datei schreiben, Datei löschen, Datei lesen, Datei in Papierkorb verschieben, Papierkorb leeren, Ordner erstellen, Datei kopieren, Ordner kopieren, Ordner verschieben, Datei verschieben, Datei umbenennen, Ordner umbenennen, Ordner löschen, Dateigröße holen, Zeitstempel aus Datei holen, Zeitstempel in Datei setzen, Datumberechnung

Es gibt nun eine Option um beim Hochfahren automatisch zu starten. Und beim Ändern der Sprache muss das Programm nicht mehr neugestartet werden.

Ich habe eigene Icons gemalt, um ja nicht in die Gefahr zu kommen, irgendwelche Urheberrechte zu verletzen.
In der Statusleiste wird nun über den Icon angezeigt, was der Flow gerade macht und ich habe sinnvolle Menüeinträge eingefügt.

Wenn ihr das Programm jetzt herunterladet, werdet ihr begrüßt ;)

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 27 Feb 2015 14:47

Neues Update! :D
Ich habe eine Installationsdatei erstellt, die auch einen Update Agenten besitzt. Bei jedem Start wird nach dem Update gesucht. Wenn ein Update gefunden wurde, erscheint eine Meldung. Es kann auch das Update herunterladen und die Installation starten.

Es gibt folgende neue Aktionen: Datei wählen, Ordner wählen, Neues Datum, In Ini lesen, In Ini schreiben, Aus Ini löschen, Dateiattribute holen, Dateiattribute setzen, Neue Liste

Es gibt folgende neue Bedingungen: Datei existiert, Datei hat Attribute

Ich denke, es gibt vorerst genug komplexe Elemente. Ich werde demnächst wieder einige elementare Dinge einfügen. Ich habe Liste als Variablentyp eingeführt und habe vor, die Listen auszubauen und zahlreiche Elemente zum Verwalten von Listen hinzuzufügen. Es sollen auch Listen in Listen möglich sein. Ich noch dabei, zu ertüfteln, wie ich das umsetze. In AM werden Listen über Funktionen im Action Script verwaltet. Ich will das mit separaten Actions umsetzen.

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 11 Mar 2015 09:18

Ein weiterer Meilenstein wurde erreicht! :-)

Ich habe viele grundlegende Funktionen zur Behandlung von Zeichenketten, Zahlen und Listen bereitgestellt. Im Gegensatz zu AutoMagic habe ich sämtliche Funktionalitäten als Actions und Conditions eingebaut. Zum einen, weil ich das so schöner finde, zum anderen, weil ich keine passende Skript-Aktion habe.

Es gibt folgende neue Aktionen: Betrag einer Zahl, Potenzieren, Quadratwurzel, Zufällige Zahl, Zahl runden, Teil eines Texts extrahieren, Text auftrennen, Text ersetzen, In einem Text suchen, Länge eines Texts ermitteln, Text kürzen, Groß- und Kleinschreibung ändern, Trigonometrie, In eine Liste einfügen, Aus einer Liste löschen, Aus einer Liste holen, Hole den Index eines Elements einer Liste, Variable kopieren, Liste mischen, Datei herunterladen

Es gibt folgende neue Bedingungen:
Text enthält Text, Ordner existiert, Liste enthält Element, Variable ist leer

Hier eine Beispielaktion:
Image

Eine besondere Herausforderung gab es beim Verwalten von Listen, welche intern als Objekte behandelt werden. Es werden nämlich, wie in AutoMagic, Listen in Listen unterstützt. Insbesondere bei den globalen Listen gab es die Schwierigkeit, die Liste in eine Datei zu schreiben und wieder zu lesen. Globale Variablen werden nämlich, im Gegensatz zu lokalen Variablen, dauerhaft gespeichert und können von jedem Flow (wobei jeder Flow ein eigener Prozess ist) gelesen und gesetzt werden. Aber dank eines schlauen Skripts von LearningOne ist mir das gelungen. Globale Variablen werden jetzt in einem separatem Ordner gespeichert und können sogar, wenn gewünscht, manuell bearbeitet werden.

Das Programm wird bald die BETA Phase verlassen, da nun alles notwendige vorhanden ist und es praktikabel eingesetzt werden kann. Noch sind wahrscheinlich einige Fehler vorhanden, die korrigiert werden müssen. Bitte probiert AutoHotFlow aus und darüber hinaus wäre ich sehr dankbar, wenn ihr es testen und die gefundenen Fehler mir melden würdet. Das geht entweder als private Nachricht hier im Forum oder per Email an autohotflow@arcor.de. Ich bin auch offen für Verbesserungsvorschläge. Eure Anfragen werden mit höchster Priorität behandelt!

User avatar
bichlepa
Posts: 148
Joined: 04 Mar 2014 18:29
Location: Germany
Contact:

Re: [German] AutoHotFlow (AutoMagic Klon für Windows)

Post by bichlepa » 15 Mar 2015 09:45

Ich plane, ein Schleifenelement einzuführen. Zum Beispiel für solche Schleifen:
  • Endlosschleife
  • Schleife mit Bedingung
  • Durch alle Elemente in einer Liste gehen
  • Ein String parsen (z.B. bei jedem Durchlauf eine Zeile eines Text behandeln)
  • Durch alle Dateien eines Ordners gehen
Nun brauche ich euren Rat. Wie soll so ein Schleifenelement aussehen und funktionieren?
Mein erster Entwurf sieht folgendermaßen aus:
Image

Die Bedienung würde folgendermaßen aussehen:
Am oberen Teil ziehen: Verschieben der Schleife und aller Elemente, die innerhalb der Schleife liegen.
Am unteren Teil ziehen: Höhenänderung des linken Balkens

Bei einem Schleifendurchlauf gäbe es folgende Variablen:
Alle Schleifen:
  • A_Index (Index vom aktuellem Durchlauf)
Listen-Schleife:
  • A_LoopField (Der Inhalt vom aktuellen Listenelement)
  • A_Key (Der Key des Listenelements)
usw.

Ist der Entwurf perfekt, oder gibt es Verbesserungsvorschläge?

Post Reply