Zum Hauptinhalt springen

Integrierte Funktionen aufrufen

  • Argumente sind positionsgebunden, und jedes ist erforderlich. Keine integrierte Funktion nimmt optionale, benannte oder variabel viele Argumente an. Die Parameternamen in der Referenz sind nur Bezeichnungen.
  • Die Anzahl der Argumente wird beim Kompilieren des Skripts geprüft, sodass eine falsche Anzahl das Skript beendet, bevor irgendetwas ausgeführt wird.
  • Die Typen der Argumente werden beim Aufruf geprüft und müssen exakt übereinstimmen, mit einer Erweiterung. Ein Integer, wo ein Real deklariert ist, wird zu diesem Real (MathSqrt(16) funktioniert), genau wie in der Arithmetik. Ein Real, wo ein Integer deklariert ist, oder eine Zahl, wo Text deklariert ist (UtilityPrint(42)), beendet die Aktion mit Name: argument N has the wrong type. Als Any angezeigte Parameter akzeptieren jeden Typ.
  • Jede integrierte Funktion gibt einen Wert zurück. Die meisten Aktionen geben einen Bool zurück, der „hat es funktioniert“ bedeutet und den Sie ignorieren oder prüfen können.
  • Fehlende Dinge sind normale Ergebnisse, keine Fehler. Ein nicht gefundenes Fenster ist ein Null-Window. Wird ein Null-Window oder ein inzwischen geschlossenes Fenster an eine Window*-Funktion übergeben, geschieht nichts, und sie gibt false, 0 oder "" zurück; eine Kette von Fensteraufrufen mit einem nicht gefundenen Handle ist also sicher. Kontextfunktionen außerhalb ihres Auslösers geben "", 0, -1 oder ein Null-Window zurück.
  • Mehrteilige Ergebnisse werden erst aufgezählt, dann indiziert. Ein Aufruf wie WindowGetAllTopLevel(), FolderEnumerateAll(…), StringSplit(…) oder DisplayMonitorEnumeratedAll() gibt eine Anzahl zurück, und das passende …EnumeratedAt(i)/…PartAt(i) liest Element i, von 0 bis Anzahl − 1. Jede Familie hat einen Cache pro Skriptausführung, und der nächste Aufzählungsaufruf derselben Familie ersetzt ihn.
  • Ein Plug-in kann eigene integrierte Funktionen beisteuern. Ihre Aufrufe sehen gleich aus. Ist das Plug-in beim Kompilieren des Skripts nicht verbunden, wird das Skript nicht ausgeführt, und eine Benachrichtigung nennt den Grund.
n = WindowGetAllTopLevel(); // Anzahl; füllt den Fenstercache
for (i = 0; i < n; i = i + 1) {
w = WindowGetEnumeratedAt(i); // Element i dieses Caches
if (WindowGetVisible(w) && WindowGetTitle(w)) {
UtilityPrint(WindowGetExecutableName(w) + " - " + WindowGetTitle(w));
}
}