Vom Schritte-Editor gemeldete Probleme
Der Schritte-Editor prüft Ihre Schritte, während Sie sie bearbeiten. Seine Meldungen erscheinen an vier Stellen: unter einem Feld, als Chip in der Zeile eines Schritts, als Schritte nicht gespeichert: unter der Liste und anstelle der Liste, wenn sich die Schritte nicht als Zeilen darstellen lassen.
Unter einem Feld
Ein Feld mit einem Problem erhält beim Tippen einen roten Rahmen und darunter die Meldung. Solange ein Feld getippten Text enthält, der seine Prüfung nicht besteht, werden die Schritte nicht gespeichert: Schritte nicht gespeichert: Schritt N hat ein ungültiges Feld erscheint unter der Liste, und die Aktion behält ihre zuletzt gespeicherten Schritte, bis Sie das Feld korrigieren (Schritte nicht gespeichert).
Ein leeres Feld zeigt keine Meldung und verhindert das Speichern nicht; die Schritte werden mit dem leeren Feld gespeichert. Wenn die Aktion läuft, stoppt ein Schritt mit einem leeren Feld für eine Zahl, Wahr oder falsch oder ein Fenster die Aktion an dieser Stelle, und die Ausgabe System der Konsole meldet, dass dieses Argument den falschen Typ hat. Ein leeres Textfeld läuft als leerer Text, was bei manchen integrierten Funktionen (ein Dateiname, ein zu suchender Fenstertitel) bedeutet, dass der Schritt nichts tut.
| Meldung | Ursache | Abhilfe |
|---|---|---|
| Dieser Wert ist erforderlich. | Der Variablenname eines Schritts Variable setzen ist leer. | Geben Sie einen Namen ein. |
| Geben Sie eine ganze Zahl (dezimal oder hexadezimal mit 0x), eine benannte Konstante oder eine $Variable ein. | Ein Feld für eine ganze Zahl oder eine Anzahl enthält etwas anderes, etwa 2.5 oder zehn. | Geben Sie Ziffern ein, mit optionalem Minuszeichen, 0x und eine hexadezimale Zahl oder eine benannte Konstante wie VirtualKey.F5 (Schrittparameter). |
| Es gibt keine benannte Konstante mit diesem Namen. Prüfen Sie Schreibweise sowie Groß- und Kleinschreibung, wie in VirtualKey.MediaPlayPause. | Ein Feld für eine ganze Zahl oder eine Zahl oder eine Anzahl enthält einen Namen mit einem Punkt, etwa VirtualKey.Mediaplaypause, der keine benannte Konstante ist. | Korrigieren Sie den Namen. Großbuchstaben zählen. Die Namen stehen unter Benannte Konstanten. |
| Geben Sie eine Zahl oder eine $Variable ein. | Ein Feld für eine Zahl enthält etwas, das keine Zahl ist. | Verwenden Sie einen Punkt als Dezimaltrennzeichen, ohne Tausendertrennzeichen: 1234.5. |
| Geben Sie true oder false oder eine $Variable ein. | Ein Wert vom Typ Wahr oder falsch eines Schritts Variable setzen enthält etwas anderes. | Geben Sie true oder false ein. |
| Ein Schritt kann keine integrierte Funktion innerhalb eines Arguments ausführen. Verschieben Sie sie zuerst in eine Variable. | Das Feld enthält einen Funktionsaufruf mit etwas in den Klammern, etwa WindowGetTitle($w). | Klicken Sie unter dem Feld auf In eine Variable verschieben (Schrittparameter). Wird dieser Link nicht angeboten, fügen Sie selbst einen Schritt für den Aufruf hinzu, speichern sein Ergebnis und verwenden die Variable. |
| Verwenden Sie Buchstaben, Ziffern und _, nicht mit einer Ziffer beginnend. | Ein Variablenname unter Ergebnis speichern als oder Variable enthält ein anderes Zeichen oder beginnt mit einer Ziffer. | Benennen Sie ihn um (Variablen). |
| Dieser Name ist reserviert. Wählen Sie einen anderen. | Der Variablenname ist if, else, for, true oder false. | Wählen Sie einen anderen Namen. |
| Wählen Sie die integrierte Funktion, deren Ergebnis geprüft wird. | Eine Bedingung mit Ergebnis einer integrierten Funktion hat noch keine Funktion. | Klicken Sie auf Integrierte Funktion wählen…, und wählen Sie eine aus. |
| „…“ kann nicht in einer Tastenkombination verwendet werden. | Dem Feld Tasten wurde eine Taste gegeben, die eine Tastenkombination nicht benennen kann, etwa eine Medientaste. | Verwenden Sie eine andere Taste oder den Schritt Taste drücken und loslassen (KeyboardPressKey) (Medientasten). |
In eine Variable verschieben wird nicht angeboten, wenn sich der Aufruf nicht lesen lässt (etwa weil
er Operatoren wie + enthält), und nicht in der Bedingung von Wiederholen, solange oder Wiederholen,
bis.
Ein Hinweis ist kein Problem: Dies wird als Text gespeichert, nicht ausgeführt. Um das Ergebnis einer
integrierten Funktion zu behalten, verwenden Sie „Ergebnis speichern als“ im Schritt dieser Funktion.
unter einem Wert vom Typ Text eines Schritts Variable setzen, der ein Funktionsaufruf mit etwas in
den Klammern ist, etwa WindowGetTitle($w). Der Wert wird als diese Zeichen gespeichert. Ein Aufruf mit
leeren Klammern, etwa ClipboardGetText(), erhält keinen Hinweis: Er ist ein Messwert aus dem Wertemenü
(Variablen).
In der Zeile eines Schritts
| Chip | Ursache | Abhilfe |
|---|---|---|
| Nicht innerhalb einer Wiederholung | Ein Schritt Schleife verlassen steht außerhalb jeder Wiederholung, meist nach einem Verschieben. Solange er dort steht, kann die Aktion nicht laufen. | Verschieben Sie ihn zurück in eine Wiederholung, oder entfernen Sie ihn (Schritte wiederholen). |
Schritte nicht gespeichert
Schritte nicht gespeichert: mit einem Grund bedeutet, dass der Editor Ihre Zeilen nicht in die Aktion zurückschreiben konnte. Bis Sie das beheben, behält die Aktion ihre zuletzt gespeicherten Schritte, und Ihre übrigen Bearbeitungen warten.
| Grund | Ursache | Abhilfe |
|---|---|---|
| für eine Bedingung ist keine integrierte Funktion gewählt | Ein Wenn oder Wiederholen, solange/bis steht auf Ergebnis einer integrierten Funktion ohne Funktion. | Wählen Sie die Funktion, oder stellen Sie Prüfen auf eine andere Art um. |
| der value einer Bedingung ist ein Aufruf (…); er muss zuerst einer Variablen zugewiesen werden | Der Wert einer Bedingung oder eine Seite eines Vergleichs enthält einen Funktionsaufruf mit Argumenten. | Fügen Sie darüber einen Schritt hinzu, der den Aufruf mit Ergebnis speichern als ausführt, und verwenden Sie die Variable in der Bedingung. |
| Argument N von Funktion ist ein Aufruf (…); er muss zuerst einer Variablen zugewiesen werden | Ein Feld eines Schritts enthält einen Funktionsaufruf mit Argumenten. N zählt die Felder des Schritts ab 1. | In eine Variable verschieben (Schrittparameter). |
| Schritt N hat ein ungültiges Feld | Ein Feld von Schritt N enthält getippten Text, der seine Prüfung nicht besteht (Unter einem Feld): abc in einem Feld für eine ganze Zahl oder eine Zahl, einen Namen, der keine benannte Konstante ist, ein Feld für Wahr oder falsch mit anderem Text, eine ungültige Anzahl oder einen nicht zulässigen Variablennamen. Ein leeres Feld verursacht das nie. N zählt die Schritte ab 1. | Korrigieren Sie das Feld, unter dem die Meldung steht. |
Wenn sich die Schritte nicht als Liste darstellen lassen
Manchmal liegen Schritte als Text vor, den die Schrittliste nicht darstellen kann: Sie wurden in der Codeansicht bearbeitet, importiert oder von Hand in der Konfigurationsdatei geschrieben. Die Liste wird dann ersetzt durch:
Diese Schritte verwenden eine Ablaufsteuerung, die nicht als Liste angezeigt werden kann (Grund). Im erweiterten Modus können sie als Code bearbeitet werden.
Das geschieht in jedem Schritte-Editor: bei einer Aktion, einem Snippet, in der Sandbox, bei den Vorher- und Nachher-Aktionen einer App-Gruppe und bei einem globalen Ereignis.
Die Schritte laufen weiterhin, wie sie sind; nur kann der Editor sie nicht als Zeilen darstellen. Im Modus „Erweitert“ zeigt die Codeansicht den Text, und sie ist der einzige Weg, ihn zu bearbeiten (Die Codeansicht). Sobald der Text wieder eine Listenform hat, kehren die Zeilen zurück. Die Textform ist unter Die Schritte-Engine beschrieben.
Der Grund ist einer der folgenden. Kursiv gesetzte Wörter stehen für den Teil Ihres Texts, den der Grund zitiert.
Der Text als Ganzes
| Grund | Was im Text zu korrigieren ist |
|---|---|
| die Schritte sind kein gültiges TOML: Meldung | Der Text ist kein gültiges TOML. Die Meldung sagt, wo. |
| es gibt kein [[steps]]-Array | Der Text hat keine [[steps]]-Tabellen. |
| der Schlüssel Schlüssel auf oberster Ebene ist kein einfacher Wert | Ein Schlüssel über dem ersten [[steps]] enthält eine Tabelle oder eine Liste. Dort dürfen nur einfache Werte stehen. |
| ein Schritt verwendet op op, das keine Listenform hat | Das op eines Schritts ist eines, das die Liste nicht darstellen kann. |
| ein Schritt verwendet die goto-Form von if, die keine Listenform hat | Ein if springt mit then_goto oder else_goto, oder es gibt einen goto-Schritt. Schreiben Sie es mit einem if-Block und end_if um, oder bearbeiten Sie weiter als Text. |
| ein if-Schritt hat keine Bedingung | Ein if-Schritt hat keine condition. |
Ein einzelner Schritt
| Grund | Was im Text zu korrigieren ist |
|---|---|
| ein call-Schritt hat kein fn | Ein call-Schritt nennt keine integrierte Funktion. |
| ein set-Schritt hat kein local | Ein set-Schritt nennt keine Variable. |
| der call eines set-Schritts hat kein fn | Der call eines set-Schritts nennt keine integrierte Funktion. |
| der value eines set-Schritts ist kein einzelner Wert | Der value eines set-Schritts ist eine Liste oder eine andere Tabelle als ein Messwert ({ fn = "Name" }) oder eine benannte Konstante ({ const = "Namespace.Name" }). |
| der value eines set-Schritts ist der Text Text, den die Liste als Ergebnis dieses Builtins zurückspeichern würde | Der value eines set-Schritts ist ein Text in Anführungszeichen, der sich als Messwert liest, etwa "ClipboardGetText()". Um das Ergebnis des Messwerts zu speichern, schreiben Sie ihn als { fn = "ClipboardGetText" }; ändern Sie sonst den Text. |
| ein set-Schritt hat weder value noch call | Ein set-Schritt hat nichts zu speichern. |
| ein repeat-Schritt braucht genau eines von times, while oder until | Ein repeat-Schritt hat keines davon oder mehr als eines. |
| das times eines repeat-Schritts ist eine als Text gespeicherte Zahl, benannte Konstante oder ein Builtin-Aufruf, die die Liste als Zahl, Konstante bzw. Ergebnis des Builtins zurückspeichern würde | times steht in Anführungszeichen, etwa "3", "MouseButton.Middle" oder "MouseGetCursorX()". Schreiben Sie eine Zahl ohne Anführungszeichen, eine Konstante als { const = "MouseButton.Middle" } oder einen Messwert als { fn = "MouseGetCursorX" }. |
| das times eines repeat-Schritts ist weder eine ganze Zahl noch Text | times ist zum Beispiel 2.5 oder true. |
| eine Bedingung ist keine Tabelle | Eine condition, while oder until ist keine Tabelle. |
| eine Bedingung braucht genau eines von fn, value oder compare | Eine Bedingung hat keines davon oder mehr als eines. |
| das not einer Bedingung ist weder true noch false | not enthält etwas anderes als true oder false. |
| das fn einer Bedingung ist leer | Das fn einer Bedingung ist leerer Text. |
| das compare einer Bedingung ist kein unterstützter Vergleich | compare ist keines von ==, !=, <, <=, >, >=. |
| ein Vergleich braucht sowohl left als auch right | Einem Vergleich fehlt left oder right. |
| ein Operand einer Bedingung ist kein einzelner Wert | Ein value, left oder right ist eine Liste oder eine andere Tabelle als ein Messwert oder eine benannte Konstante. |
| eine Bedingung vergleicht den Text Text, den die Liste als Zahl, benannte Konstante, true/false oder Ergebnis eines Builtins zurückspeichern würde | Ein verglichener Wert steht in Anführungszeichen, liest sich aber als Zahl, benannte Konstante, true/false oder Messwert, etwa "3", "MouseButton.Left" oder "ClipboardGetText()". Die Liste kann ihn nicht als Text behalten. Schreiben Sie einen Messwert als { fn = "ClipboardGetText" }, oder ändern Sie den Text. |
| args ist kein Array | Die args eines Schritts sind keine Liste. |
| ein Argument ist kein einzelner Wert | Ein Argument ist eine Liste oder eine andere Tabelle als ein Messwert ({ fn = "Name" }) oder eine benannte Konstante ({ const = "Namespace.Name" }). |
| ein Wert nennt die Konstante Text, die es nicht gibt | Ein { const = "…" } enthält einen Namen, der keine benannte Konstante ist, oder keinen Text. Korrigieren Sie den Namen; Großbuchstaben zählen. |
Blöcke, die nicht zusammenpassen
N ist die Position des Schritts, ab 1 gezählt.
| Grund | Was im Text zu korrigieren ist |
|---|---|
| Schritt N ist ein else außerhalb eines if-Blocks | Ein else ohne offenes if davor. |
| Schritt N ist ein zweites else in einem if-Block | Ein if-Block hat zwei else-Schritte. |
| Schritt N schließt einen Block, der nicht geöffnet ist | Ein end_if oder end_repeat ohne passenden offenen Block. |
| Schritt N öffnet einen Block, der nie geschlossen wird | Ein if oder repeat ohne end_if oder end_repeat. |
Hinweise rund um den Editor
| Hinweis | Bedeutung |
|---|---|
| In diesem Modus ist nichts eingerichtet, daher bewirkt die Ausführung nichts. Der Inhalt unter „Modus“ bleibt erhalten, wird aber nicht ausgeführt. | Geschrieben als steht auf einem leeren Modus, während ein anderer Modus Inhalt hat. Klicken Sie auf Modus verwenden, um zurückzuwechseln (Schritte, Skript und AutoHotkey). |
| Die AutoHotkey-Unterstützung ist in den allgemeinen Einstellungen ausgeschaltet, daher tut diese Aktion nichts, bis sie aktiviert wird. | Die Aktion läuft als AutoHotkey, das ausgeschaltet ist (AutoHotkey). |
| Kein registriertes Plug-in stellt die Engine „Engine“ bereit, daher wird dieses Skript bei der Ausführung übersprungen. Fügen Sie das Plug-in auf der Seite „Plug-ins“ hinzu oder wählen Sie einen anderen Modus. | Die Aktion läuft in der Engine eines Plug-ins, und dieses Plug-in ist nicht registriert (Plug-ins). |