Benutzerinteraktion

Dieses Beispiel zeigt, wie Benutzer mithilfe der bereitgestellten API-Methoden zur Eingabe aufgefordert oder über eine Meldung benachrichtigt werden.

var macro = createMacro(function*(){
  'use strict';
  
  // Das "ui"-Objekt stellt Funktionen zur Abfrage und Anzeige von Informationen bereit
  
  // Variablen für eine spätere Verwendung deklarieren
  var username;
  var password;
  var flavor;
  var scoops;
  
  //Start generiertes Makro
  var ps = session.getPresentationSpace();
  
  try { 
    // Benutzer zur Eingabe ihres Namens auffordern und den Namen in einer Variable speichern.
    // Das 'yield'-Schlüsselwort ist zum Blockieren der Ausführung erforderlich, während auf die Benutzereingabe gewartet wird.
    username = yield ui.prompt('Geben Sie Ihren Benutzernamen ein');
    
    // Benutzer mit bereitgestelltem Standard zur Eingabe eines Werts auffordern.
    flavor = yield ui.prompt('Was ist Ihre Lieblingseissorte?', 'Schokolade');
    
    // Benutzer über die 'mask'-Option zur Eingabe persönlicher Informationen auffordern. Das Eingabefeld wird bei der Eingabe maskiert.
    // Wenn ein Parameter nicht verwendet wird, kann mit 'null‘ angegeben werden, dass er nicht verwendet werden soll.
    // Hier zeigen wir durch die Angabe, dass wir keinen Standardwert zeigen müssen.
    password = yield ui.prompt('Geben Sie Ihr Kennwort ein', null, true);
    
    // Die Aufforderung gibt null zurück, wenn der Benutzer nicht auf die Schaltfläche 'OK' klickt, sondern auf 'Abbrechen'.
    // Eine Möglichkeit zum Behandeln dieses Falls ist das Umbrechen des Aufrufs in einem try/catch-Block.
    scoops = yield ui.prompt('Wie viele Kugeln möchten Sie?');
    if (scoops === null) {
      // Dadurch wird das Makro beendet.
      return;
      // Alternativ könnte ein Fehler ausgegeben und im nachstehenden "Catch" erfasst werden
    }
    // Die gesammelten Werte verwenden, um das Eis zu bestellen
      ps.sendKeys(username + ControlKey.TAB + password + ControlKey.ENTER);
      yield wait.forCursor(new Position(5, 1));
      ps.sendKeys(flavor + ControlKey.TAB + scoops + ControlKey.ENTER);

      // Dem Benutzer eine Meldung anzeigen. Durch die Verwendung des 'yield'-Schlüsselworts vor dem Aufruf wird die
      // weitere Ausführung des Makros blockiert, bis der Benutzer auf die Schaltfläche 'OK' klickt.
      yield ui.message('Bestellung erfolgreich. Genießen Sie Ihr ' + scoops + ' Kugeln ' + flavor + ' Eiscreme ' + username + '!');
    } catch (error) {
      // Hier verwenden wir das ui-Objekt zum Anzeigen einer Fehlermeldung
      yield ui.message(error.message);
    }
    //Ende generiertes Makro

});
    
return macro();