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();