AutoHotFlow - Kleine Programme grafisch erstellen

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

AutoHotFlow - Kleine Programme grafisch erstellen

29 Aug 2014, 06:24

Für viele Menschen ist programmieren zu kompliziert, weil sie mit einem Code nichts anfangen können, sie würden aber gerne trotzdem kleine Programme schreiben. Die Lösung: AutoHotFlow

AutoHotFlow ist ein grafischer Editor für kleine Programme (Flows).
Man fügt einfach Elemente ein, verbindet sie, und führt es aus, oder aktiviert einen oder mehrere Auslöser, die den Flow auslösen.

Image

Alle Elemente haben Eigenschaften, die geändert werden können.

Image

Mit einem Manager lassen sich die Flows verwalten.

Image

Es gibt lokale und globale Variablen, wobei die globalen allen Flows zur Verfügung stehen und gespeichert werden, um beim nächsten Start wieder verfügbar zu sein.
Das Programm kann Deutsch und Englisch. Weitere Übersetzungen können leicht erstellt werden.

Download aktuelle Version

Sourcecodes auf GitHub

Das Projekt habe ich seit kurzem begonnen und es gibt noch viel zu tun. Es gibt vor allem noch sehr wenige Elemente.
Denkbar ist, dass viele typische AHK-Aufgabe bequem zusammengeklickt werden können und darüber hinaus Sachen ermöglichen, die sonst nicht so einfach zu schreiben sind.

Wer mitmachen will, ist gerne willkommen! So könnt ihr beitragen:
  • Systematisch testen
  • In andere Sprachen übersetzen
  • Coden

Die Idee kam mir von der Android App AutoMagic.
Last edited by bichlepa on 11 Apr 2016, 11:15, edited 8 times in total.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

29 Aug 2014, 09:52

So wie ich sehe, ist DRAKON dazu da, den Code zu veranschaulichen bzw. man kann sich den Code basteln. Aber es stehen nur die Befehle zur Verfügung, die in der Programmiersprache sowieso zur Verfügung sind.
Bei AutoHotFlow ist der Vorteil, dass manche Elemente komplexe Dinge machen können und Einstellungen haben. So kann man z.B. bei der Aktion "Tooltip" allein durch das Aktivieren des Kästchens "Der Maus folgen" mehrere Zeilen Code ersparen.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Joska
Posts: 7
Joined: 24 Jan 2015, 12:39

Re: AutoHotFlow - Kleine Programme grafisch erstellen

24 Jan 2015, 15:26

Wird dieses interessante Projekt fortgesetzt?

LG, Joska
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

27 Jan 2015, 13:28

Ja, ich mache voraussichtlich im März weiter.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

06 Feb 2015, 12:28

Ich habe nun doch vorzeitig 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. 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

Download
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

08 Feb 2015, 12:35

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. Dass es möglich ist, habe ich allein den mächtigen AutoHotkey Features zu verdanken.
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. Also, dasselbe wie der AHK Befehl "Run".

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
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Joska
Posts: 7
Joined: 24 Jan 2015, 12:39

Re: AutoHotFlow - Kleine Programme grafisch erstellen

08 Feb 2015, 17:34

Es freut mich, das du weiter machst, nächstes Wochenende werde ich npmal testen
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

11 Feb 2015, 13: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.
Wenn ein Element markiert wird, erscheinen mehrere Icons zum Bearbeiten, Löschen und evtl. Erstellen neuer Verbindung. Nach dem Klick auf den Icon für neue Verbindung (das Plus Zeichen) entsteht eine neue Verbindung, die dem Mauszeiger folgt. Nun kann man entweder ein anderes Element anklicken, was die Verbindung dorthin plaziert, oder auf einer leeren Stelle, was ein neues Element erzeugt. 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

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.

Was auch noch etwas störend ist, ist das Flackern, wenn das Bild ständig neu gerendert werden muss. Ich kenne aber keine Lösung dafür. Wenn mir jemand helfen mag, gerne!

Download
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

15 Feb 2015, 12: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 einer jeden "Programmiersprache" (wenn man AutoHotFlow so bezeichnen kann) und hat daher hohe Priorität. Im AHK 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:
=, ==, !=, <, >, <=, >=, +, -, *, /, || bzw or, && bzw and, ! bzw not.

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
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
nnnik
Posts: 2187
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: AutoHotFlow - Kleine Programme grafisch erstellen

15 Feb 2015, 13:58

Du hast punkt vor strich rechnung vergessen ^^
Recommends AHK Studio
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

16 Feb 2015, 02:49

@nnnik: Kannst du mir ein Beispiel geben? Die Formel 2+ 3/4 + 5 wird z.B. richtig ausgerechnet.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
nnnik
Posts: 2187
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: AutoHotFlow - Kleine Programme grafisch erstellen

16 Feb 2015, 04:01

...
Ich bin mir ziemlich sicher, dass ich nachdem ich nochmal über deine Funktionen drüber geschaut mich damals dagegen entschieden habe das zu posten.
Recommends AHK Studio
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

17 Feb 2015, 09: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
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

19 Feb 2015, 15: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 ;)
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

27 Feb 2015, 09:47

Neues Update!
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.
Was ich auch vor habe, ist ein Schleifenelement zu entwickeln, womit man zum Beispiel mehrere male eine Schleife durchlaufen oder durch alle Dateien in einem Ordner gehen kann.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

11 Mar 2015, 04:18

Ein weiterer Meilenstein wurde erreicht! :-)

Ich habe viele grundlegende Funktionen zur Behandlung von Zeichenketten, Zahlen und Listen bereitgestellt.

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 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!
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

09 Jun 2015, 11:21

Nach einiger Zeit Entwicklungspause habe ich endlich wieder weitergemacht.

Ich habe Schleifen eingebaut! :D

Es gibt folgende Schleifen: Einfache Schleife, Schleife mit Bedingung, Eine Liste abarbeiten, Text parsen, Schleife über Dateien

Image

Eine Schleife wird oben betreten. Dann geht das Programm im Inneren weiter. Die Schleife stellt immer die Variable a_index zur Verfügung. Je nach Schleifentyp einige weitere, so, wie wir es in ahk kennen. Wenn der untere Balken erreicht wird, so geht es entweder oben wieder weiter, oder man springt unten wieder heraus. Aus der Schleife kann man herausbrechen, wenn man unten zu dem roten "Break" bereich verbindet. Es ist zwar meist auch möglich, ohne einem "Break" die Schleife zu verlassen, aber es wird nötig sein, wenn man mehrere Schleifen ineinander benutzt.

Die nächste Aufgabe wird sein, eine Hilfe zu implementieren. Spätestens bei der Verwendung von Schleifen kommt man intuitiv nicht mehr weiter, da man nicht weiß, welche Variablen dort zur Verfügung stehen.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Alibaba
Posts: 427
Joined: 29 Sep 2013, 16:15
Location: Germany

Re: AutoHotFlow - Kleine Programme grafisch erstellen

14 Jun 2015, 06:06

Wow. Das Projekt nimmt mittlerweile beeindruckende Ausmaße an. Sehr schön, würde mich freuen noch weitere Verbesserungen zu sehen, ich denke dahinter steckt großes Potential. Weiter so! :)
"Nothing is quieter than a loaded gun." - Heinrich Heine
User avatar
bichlepa
Posts: 135
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: AutoHotFlow - Kleine Programme grafisch erstellen

20 Jun 2015, 11:09

Neues Update!
Ich habe endlich die Hilfe für alle Elemente geschrieben. Ich habe alles in Englisch gemacht. Für eine Übersetzung bräuchte ich wieder viel Zeit, ich schreibe stattdessen lieber am Programm weiter. Mein Nächstes Ziel ist, Debugging Features einzubauen. Dazu gehört, dass alles geloggt wird, und das Implementieren der Bedingung "Debug Dialog" nach dem Automagic Vorbild.
Wenn mir jemand bei der Übersetzung oder der Verbesserung der Hilfe helfen möchte, dann ist das gerne willkommen. Ich habe die Hilfe als HTML Dateien mit LibreOffice geschrieben und nur die Links im HTML Code manuell bearbeitet.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 1 guest