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 gibtfalse,0oder""zurück; eine Kette von Fensteraufrufen mit einem nicht gefundenen Handle ist also sicher. Kontextfunktionen außerhalb ihres Auslösers geben"",0,-1oder ein Null-Window zurück. - Mehrteilige Ergebnisse werden erst aufgezählt, dann indiziert. Ein Aufruf wie
WindowGetAllTopLevel(),FolderEnumerateAll(…),StringSplit(…)oderDisplayMonitorEnumeratedAll()gibt eine Anzahl zurück, und das passende…EnumeratedAt(i)/…PartAt(i)liest Elementi, von0bis 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));
}
}