- Überblick
- UI-Automatisierung (UI Automation)
- Über das UIAutomation-Aktivitätspaket
- Mit UI-Automatisierung automatisierte Anwendungen und Technologien
- Projektkompatibilität
- UI-ANA-016 – URL zum Öffnen eines Browsers abrufen
- UI-ANA-017 – ContinueOnError True
- UI-ANA-018 – OCR-/Bildaktivitäten auflisten
- UI-DBP-006 – Containernutzung
- UI-DBP-013 – Falscher Gebrauch von Excel-Automatisierung
- UI-DBP-030 – Verwendung unzulässiger Variablen in Selektoren
- UI-DBP-031 – Aktivitätsverifizierung
- UI-PRR-001 – Klick simulieren
- UI-PRR-002 – Typ simulieren
- UI-PRR-003 – Offener Anwendungsmissbrauch
- UI-PRR-004 – Hartcodierte Verzögerungen
- UI-REL-001 – Große IDX in Selektoren
- UI-SEC-004 – Selektor-E-Mail-Daten
- UI-SEC-010 – App-/URL-Einschränkungen
- UI-USG-011 – Nicht zulässige Attribute
- UX-SEC-010 – App-/URL-Einschränkungen
- UX-DBP-029 – Unsichere Kennwortnutzung
- UI-PST-001 – Prüfungsprotokollebene in Projekteinstellungen
- UiPath-Browsermigrationstool
- Clippingbereich
- Computer Vision Recorder
- Aktivitätenindex
- Aktivieren (Activate)
- Ankerbasis (Anchor Base)
- Browser anhängen (Attach Browser)
- Fenster anhängen (Attach Window)
- Benutzeingabe blockieren (Block User Input)
- Textfeld (Callout)
- Prüfen (Check)
- Klicken (Click)
- Bild anklicken (Click Image)
- Bild-Trigger anklicken (Click Image Trigger)
- OCR-Text anklicken (Click OCR Text)
- Text anklicken (Click Text)
- Trigger anklicken (Click Trigger)
- Anwendung schließen (Close Application)
- Registerkarte schließen (Close Tab)
- Fenster schließen (Close Window)
- Kontextbewusster Anker
- Ausgewählten Text kopieren (Copy Selected Text)
- Element Attribute Change Trigger
- Element vorhanden (Element Exists)
- Elementumfang (Element Scope)
- Element State Change Trigger
- Export UI Tree
- Strukturierte Daten extrahieren (Extract Structured Data)
- Untergeordnete Elemente finden (Find Children)
- Element finden (Find Element)
- Bild finden (Find Image)
- Bildübereinstimmung finden (Find Image Matches)
- OCR-Textposition finden (Find OCR Text Position)
- Relatives Element finden (Find Relative Element)
- Textposition finden (Find Text Position)
- Aktives Fenster abrufen (Get Active Window)
- Vorgänger-Element erhalten (Get Ancestor)
- Attribut erhalten (Get Attribute)
- Ereignisinfo erhalten (Get Event Info)
- Aus Zwischenablage erhalten (Get From Clipboard)
- Volltext erhalten (Get Full Text)
- OCR-Text erhalten (Get OCR Text)
- Passwort erhalten (Get Password)
- Position erhalten (Get Position)
- Quellelement erhalten (Get Source Element)
- Text erhalten (Get Text)
- Sichtbaren Text erhalten (Get Visible Text)
- Zurück (Go Back)
- Weiter (Go Forward)
- Zur Startseite (Go Home)
- Google Cloud Vision OCR
- Fenster ausblenden (Hide Window)
- Markieren (Highlight)
- Hotkey-Trigger (Hotkey Trigger)
- Darauf zeigen (Hover)
- Auf Bild zeigen (Hover Image)
- Auf OCR-Text zeigen (Hover OCR Text)
- Text beim Darauf zeigen (Hover Text)
- Bild vorhanden (Image Exists)
- Auf Bildschirm anzeigen (Indicate On Screen)
- .NET-Code einfügen
- Inject Js Script
- ActiveX-Methode aufrufen
- Tastendruck-Trigger (Key Press Trigger)
- Bild laden (Load Image)
- Fenster maximieren (Maximize Window)
- Microsoft Azure ComputerVision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- Fenster minimieren (Minimize Window)
- Ereignisse überwachen (Monitor Events)
- Maus-Trigger (Mouse Trigger)
- Fenster verschieben (Move Window)
- Navigieren zu (Navigate To)
- OCR-Text vorhanden (OCR Text Exists)
- Auf Element erscheinen (On Element Appear)
- Auf Element verschwinden (On Element Vanish)
- Auf Bild erscheinen (On Image Appear)
- Auf Bild verschwinden (On Image Vanish)
- Anwendung öffnen (Open Application)
- Browser öffnen (Open Browser)
- Browser aktualisieren (Refresh Browser)
- Benutzerereignis wiedergeben (Replay User Event)
- Fenster wiederherstellen (Restore Window)
- Bild speichern (Save Image)
- Objekt auswählen (Select Item)
- Mehrere Objekte auswählen (Select Multiple Items)
- Hotkey senden (Send Hotkey)
- Ausschneidebereich einstellen (Set Clipping Region)
- Fokus legen auf (Set Focus)
- Text einstellen (Set Text)
- Auf Zwischenablage setzen (Set To Clipboard)
- Web-Attribut setzen (Set Web Attribute)
- Fenster anzeigen (Show Window)
- Prozess starten (Start Process)
- System-Trigger (System Trigger)
- Screenshot anfertigen (Take Screenshot)
- Tesseract OCR
- Text vorhanden (Text Exists)
- Tooltip
- Eingeben in (Type Into)
- Sicheren Text eingeben (Type Secure Text)
- Vordergrund verwenden
- Attribut abwarten (Wait Attribute)
- Warten, bis Element verschwindet (Wait Element Vanish)
- Warten, bis Bild verschwindet (Wait Image Vanish)
- Prüfung der Barrierefreiheit
- Application event trigger
- Benutzeingabe blockieren (Block User Input)
- Check/Uncheck
- Check App State
- Check Element
- Klicken (Click)
- Click Event Trigger
- Ziehen und Ablegen
- Extract Table Data
- Find Elements
- For Each UI Element
- Get Browser Data
- Clipboard abrufen
- Text erhalten (Get Text)
- Get URL
- Zu URL wechseln
- Markieren (Highlight)
- Darauf zeigen (Hover)
- Inject Js Script
- Tastenkombinationen
- Keypress Event Trigger
- Mouse Scroll
- Navigate Browser
- Objekt auswählen (Select Item)
- Set Browser Data
- Clipboard festlegen
- Set Runtime Browser
- Fokus legen auf (Set Focus)
- Text einstellen (Set Text)
- Screenshot anfertigen (Take Screenshot)
- Eingeben in (Type Into)
- Unblock User Input
- Use Application/Browser
- Window operation
- Anhängen
- Prüfen (Check)
- Klicken (Click)
- Ziehen und Ablegen
- Daten extrahieren
- Attribut erhalten (Get Attribute)
- GetChildren
- GetRuntimeTarget
- GetText
- Get URL
- GoToUrl
- Markieren (Highlight)
- Darauf zeigen (Hover)
- IsEnabled
- Tastaturkürzel (Keyboard Shortcut)
- Mouse Scroll
- Offen
- Objekt auswählen (Select Item)
- Screenshot anfertigen (Take Screenshot)
- Eingeben in (Type Into)
- Wartestatus
- Führen Sie eine Browsersuche durch und rufen Sie Ergebnisse mithilfe von UIAutomation-APIs ab
- Web-Browsing
- Finden von Bildern
- Klicken auf Bilder
- Auslösen und Überwachen von Ereignissen
- Erstellen und Überschreiben von Dateien
- HTML-Seiten: Extrahieren und Bearbeiten von Informationen
- Bearbeiten von Fenstern
- Automatisierte Listenauswahl
- Finden und Bearbeiten von Fensterelementen
- Verwalten der Textautomatisierung
- Laden und Verarbeiten von Bildern
- Verwalten von mausaktivierten Aktionen
- Automatisieren der Anwendungslaufzeit
- Automatisierte Ausführung einer lokalen Anwendung
- Browsernavigation
- Web-Automatisierung
- Beispiel für Trigger Scope
- Aktivieren der Unterstützung für die UI-Automatisierung in DevExpress
- Computer Vision Local Server
- Mobile Automation
- Versionshinweise
- Über die Architektur der Automatisierung von Mobilgeräten
- Projektkompatibilität
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Install App
- Manage Current App
- Manage Other App
- DeepLink öffnen
- Open URL
- Mobile Device Connection
- Richtungswechsel
- Muster zeichnen
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Screenshot anfertigen (Take Screenshot)
- Take Screenshot Part
- Element vorhanden (Element Exists)
- Execute Command
- Attribut erhalten (Get Attribute)
- Get Selected Item
- Text erhalten (Get Text)
- Set Selected Item
- Text einstellen (Set Text)
- Wischen
- Tap
- Type Text
- Terminal
- Versionshinweise
- Über das Terminal-Aktivitätspaket
- Projektkompatibilität
- Best Practices
- Find Text
- Get Color At Position
- Get Cursor Position
- Feld erhalten (Get Field)
- Feld an Position erhalten (Get Field at Position)
- Bildschirmbereich erhalten (Get Screen Area)
- Text erhalten (Get Text)
- Text an Position erhalten (Get Text at Position)
- Cursor bewegen (Move Cursor)
- Move Cursor to Text
- Strg-Taste senden (Send Control Key)
- Tasten senden (Send Keys)
- Sichere Tasten senden (Send Keys Secure)
- Feld setzen (Set Field)
- Feld an Position setzen (Set Field at Position)
- Terminalsitzung (Terminal Session)
- Warte auf Feldtext (Wait Field Text)
- Wait Screen Ready
- Warte auf Bildschirmtext (Wait Screen Text)
- Warte auf Text an Position (Wait Text at Position)
- Terminalcodierte Automatisierungs-APIs

UIAutomation-Aktivitäten
Terminalcodierte Automatisierungs-APIs
UiPath.Terminal.Activities
Codierte Workflow-API zur Automatisierung von Terminalemulationssitzungen. Stellt Methoden zum Aufbau von Verbindungen mit IBM 3270/5250, VT, HP, ANSI, Wyse und anderen Legacy-Terminalsystemen über BlueZone, IBM PCOMM, Attachmate oder direkte TCP/SSH-Verbindungen her und interagiert dann programmatisch mit dem Terminalbildschirm.
Dienst-Accessor: terminal (Typ ITerminalService) Erforderliches Paket: "UiPath.Terminal.Activities": "*" in project.json-Abhängigkeiten
Automatisch importierte Namensräume
Diese Namespaces sind automatisch in codierten Workflows verfügbar, wenn dieses Paket installiert wird:
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
Dienstübersicht
Der terminal -Dienst bietet Factory-Methoden, die eine Terminalverbindung öffnen und ein TerminalConnection -Objekt zurückgeben. Das Verbindungsobjekt ist die API-Oberfläche für alle Terminalvorgänge – Bildschirmlesevorgänge, Feldzugriff, Schlüsselsenden und Warten.
Dies ist eine verbindungsbasierte API:
- Rufen Sie eine Dienstmethode (
GetConnection/GetSshConnection) auf, um sie zu öffnen und zu verbinden. - Verwenden Sie das zurückgegebene
TerminalConnectionum Terminalvorgänge auszuführen. - Verwerfen Sie die Verbindung, wenn Sie fertig sind (oder verwenden Sie eine
using-Anweisung).
Im codierten Workflowmodus geben alle TerminalConnection -Methoden bei Fehler TerminalConnectionExceptionaus, anstatt Fehlercodes zurückzugeben. Das bedeutet, dass Sie keine Rückgabewerte überprüfen müssen – nur Ausnahmen verarbeiten müssen.
Verbindungsmethoden
TerminalConnection GetConnection(string connectionString)
Öffnet eine Terminalverbindung mithilfe einer serialisierten Verbindungszeichenfolge. Die Verbindungszeichenfolge codiert den Anbietertyp, den Host, den Port, das Protokoll und andere Einstellungen. Verwenden Sie das Dialogfeld Verbindungseinstellungen der Aktivität Terminal Session XAML, um eine gültige Zeichenfolge zu generieren.
Parameter:
connectionString(string) – Serialisierte Verbindungszeichenfolge. Beispiel: Wird durch Konfigurieren einer Terminal Session-Aktivität und Kopieren des EigenschaftswertsConnectionStringerhalten.
Gibt Folgendes zurück: TerminalConnection – Eine offene, verbundene Terminalsitzung. Implementiert IDisposable; in einer using -Anweisung verwenden.
Löst aus: TerminalConnectionException , wenn die Verbindung nicht innerhalb des Timeouts hergestellt werden kann.
TerminalConnection GetConnection(ConnectionData connectionData)
Öffnet eine Terminalverbindung mithilfe eines ConnectionData -Objekts und ermöglicht eine programmgesteuerte Konfiguration ohne serialisierte Verbindungszeichenfolge.
Parameter:
connectionData(ConnectionData) – Konfigurationsobjekt, das Anbieter, Host, Port, Protokoll und Emulationseinstellungen angibt.
Gibt Folgendes zurück: TerminalConnection – Eine offene, verbundene Terminalsitzung.
Löst aus: TerminalConnectionException wenn die Verbindung nicht hergestellt werden kann.
TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)
Öffnet eine SSH-Terminalverbindung mit expliziten Anmeldeinformationen. Der connectionData muss ProviderType = UiPathNew und ConnectionProtocol = SSH angeben.
Parameter:
connectionData(ConnectionData) – Verbindungskonfiguration. MussProviderType = TerminalProviderType.UiPathNewundConnectionProtocol = CommunicationType.SSHhaben.sshUser(string) – SSH-Benutzername.sshPassword(SecureString) – SSH-Kennwort. Verwenden Sie eineSecureString-Variable (z. B. aus Get Credential), um Klartext zu vermeiden.
Gibt Folgendes zurück: TerminalConnection – Eine offene, verbundene SSH-Terminalsitzung.
Gibt Folgendes aus: TerminalConnectionException wenn die Verbindung fehlschlägt, oder ArgumentException , wenn ProviderType oder ConnectionProtocol ungültig ist.
Terminalverbindung
TerminalConnection ist das Handle, das von allen Dienstmethoden zurückgegeben wird. Es stellt alle Terminal-Interaktionsvorgänge bereit und implementiert IDisposable.
Dieser Typ implementiert IDisposable. Immer innerhalb einer using -Anweisung verwenden oder Dispose() / Shutdown() explizit aufrufen. Durch das Verwerfen wird die Sitzung getrennt und alle Hostprozesse beendet.
Eigenschaften
| Eigenschaften | Typ | Beschreibung |
|---|---|---|
Connected | bool | true wenn die Sitzung derzeit mit dem Host verbunden ist. |
ConnectionString | string | Die serialisierte Verbindungszeichenfolge zum Aufbau dieser Verbindung. |
DefaultCmdOptions | CommandOptions | Standardoptionen für Timeout und Wartemodus, die auf alle Vorgänge angewendet werden, wenn sie nicht explizit überschrieben werden. |
Events
| Ereignis (Event) | Beschreibung |
|---|---|
TerminalScreenChanged | Wird ausgelöst, wenn sich der Bildschirminhalt des Terminals ändert. |
TerminalFieldChanged | Wird ausgelöst, wenn sich ein Feldwert ändert. |
TerminalCursorChanged | Wird erhöht, wenn sich die Cursorposition ändert. |
TerminalConnectionChanged | Wird ausgelöst, wenn sich der Verbindungsstatus ändert (z. B. verbinden/trennen). |
TerminalErrorRaised | Wird ausgelöst, wenn ein Terminalfehler asynchron auftritt. |
Bildschirmlesemethoden
TerminalResultCode GetText(out string text, CommandOptions options = null)
Liest den gesamten sichtbaren Textinhalt des Terminalbildschirms.
Parameter:
text(out string) – Erhält den Vollbildtext.options(CommandOptions, optional) – Timeout und Wartemodus. Die Standardeinstellung istDefaultCmdOptions.
Gibt Folgendes zurück: TerminalResultCode.Success (oder löst bei einem Fehler im codierten Workflowmodus TerminalConnectionException aus).
TerminalResultCode GetTextAtPosition(TerminalField criteria, int? length, out string text, CommandOptions options = null)
Liest Text vom Bildschirm ab der durch criteria definierten Position. Begrenzt optional die Anzahl der gelesenen Zeichen.
Parameter:
criteria(TerminalField) – Definiert die Startposition überRowStart/ColStart.length(int?, optional) – Anzahl der zu lesenden Zeichen.nullliest bis zum Ende der Zeile.text(out string) – Empfängt den von der Position gelesenen Text.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode GetScreenArea(TerminalField criteria, out string text, CommandOptions options = null)
Liest Text aus einem Rechteckbereich des Bildschirms, der durch criteria definiert wird.
Parameter:
criteria(TerminalField) – Definiert die Region mitRowStart,ColStart,RowEnd,ColEnd.text(out string) – Empfängt den Text von der Region.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode GetColorAtPosition(int row, int column, out Color color, CommandOptions options = null)
Ruft die Vordergrundfarbe des Zeichens an der angegebenen Position ab.
Parameter:
row(int) – Zeile (1-basiert).column(int) – Spalte (1-basiert).color(out Color) – Empfängt den WertSystem.Drawing.Color.options(CommandOptions, optional) – Timeout und Wartemodus.
ScreenData GetScreen(CommandOptions options = null)
Gibt das rohe Bildschirmdatenobjekt einschließlich aller Feldattribute und Zeichendaten zurück.
Parameter:
options(CommandOptions, optional) – Timeout und Wartemodus.
Gibt Folgendes zurück: ScreenData mit Bildschirminhalt und Feldmetadaten oder null , wenn nicht verbunden.
Feldmethoden
TerminalResultCode GetField(TerminalField field, out string text, CommandOptions options = null)
Liest den Textinhalt eines Felds, das durch seine Kriterien (Bezeichnung, Index oder Koordinaten) identifiziert wird.
Parameter:
field(TerminalField) – Feldidentifikation. Legen SieLabeledBy,FollowedBy,Indexoder Koordinateneigenschaften fest.text(out string) – Empfängt den Feldtext.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode SetField(TerminalField criteria, string text, CommandOptions options = null)
Schreibt Text in das Feld, der den Kriterien entspricht.
Parameter:
criteria(TerminalField) – Feldidentifikation. Legen SieLabeledBy,FollowedBy,Indexoder Koordinateneigenschaften fest.text(string) – Zu schreibender Text.options(CommandOptions, optional) – Timeout und Wartemodus.
Cursor-Methoden
TerminalResultCode GetCursorPosition(out CursorPosition cursorPosition, CommandOptions options = null)
Ruft die aktuelle Zeile und Spalte des Terminalcursors ab.
Parameter:
cursorPosition(out CursorPosition) – Empfängt die Cursorposition (Row,Column).options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode MoveCursor(int row, int column, CommandOptions options = null)
Verschiebt den Terminalcursor zur angegebenen Zeile und Spalte.
Parameter:
row(int) – Zielzeile (1-basiert).column(int) – Zielspalte (1-basiert).options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode MoveCursor(CursorPosition cursor, CommandOptions options = null)
Bewegt den Cursor mithilfe eines CursorPosition -Objekts.
Parameter:
cursor(CursorPosition) – Zielposition.options(CommandOptions, optional) – Timeout und Wartemodus.
Wichtige Sendemethoden
TerminalResultCode SendKeys(string keys, CommandOptions options = null)
Sendet eine Textzeichenfolge an das Terminal an der aktuellen Cursorposition.
Parameter:
keys(string) – Zu sendender Text.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode SendKeysSecure(SecureString keys, CommandOptions options = null)
Sendet ein SecureString an das Terminal. Die Zeichenfolge wird im Arbeitsspeicher entschlüsselt und gesendet, dann wird der nicht verwaltete Puffer auf Null gesetzt. Für Kennwörter verwenden.
Parameter:
keys(SecureString) – Sicherer Text zum Senden.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode SendControlKey(ControlKey key, CommandOptions options = null)
Sendet eine Kontrolltaste (Tabulatortaste, F1–F24, Senden/Eingeben, Pfeiltasten usw.) an das Terminal.
Parameter:
key(ControlKey) – Die zu sendende Kontrolltaste. SieheControlKey-Enumeration.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode SendControlKey(ControlKey key, int delayMS, CommandOptions options = null)
Sendet eine Kontrolltaste und wartet dann eine bestimmte Anzahl von Millisekunden, bevor sie zurückgegeben wird. Nützlich, wenn der Host nach einem Schlüssel Verarbeitungszeit benötigt.
Parameter:
key(ControlKey) – Die zu sendende Kontrolltaste.delayMS(int) – Millisekunden für den Ruhezustand nach dem Senden des Schlüssels.options(CommandOptions, optional) – Timeout und Wartemodus.
Wartemethoden
TerminalResultCode WaitScreenReady(CommandOptions options = null)
Wartet, bis die Tastatur des Terminals entsperrt ist und der Bildschirm für Eingaben bereit ist.
Parameter:
options(CommandOptions, optional) – Timeout und Wartemodus. Legen SieTimeoutfest, um zu steuern, wie lange gewartet werden soll.
TerminalResultCode WaitText(string text, TerminalField criteria = null, bool matchCase = true, CommandOptions options = null)
Wartet, bis der angegebene Text auf dem Terminalbildschirm angezeigt wird (oder in einem bestimmten Feld, wenn criteria angegeben wird).
Parameter:
text(string) – Text, auf den gewartet werden soll.criteria(TerminalField, optional) – Wenn diese Option festgelegt ist, wird auf den Text im entsprechenden Feld gewartet. Beinullwird auf den Text an einer beliebigen Stelle auf dem Bildschirm gewartet.matchCase(bool, optional) – Vergleich unter Berücksichtigung der Groß-/Kleinschreibung. Standard:true.options(CommandOptions, optional) – Timeout und Wartemodus.
TerminalResultCode FindTextInScreen(string text, CursorPosition startPosition, bool ignoreCase, out CursorPosition position, CommandOptions options = null)
Sucht den Bildschirm nach einer Textzeichenfolge, die mit startPosition beginnt.
Parameter:
text(string) – Text, nach dem gesucht werden soll.startPosition(CursorPosition) – Startposition für die Suche.ignoreCase(bool) – Suche ohne Berücksichtigung von Groß-/Kleinschreibung.position(out CursorPosition) – Erhält die Koordinaten, an denen Text gefunden wurde.options(CommandOptions, optional) – Timeout und Wartemodus.
Gibt Folgendes zurück: TerminalResultCode.Success wenn gefunden. gibt aus (oder gibt InvalidCoordinates zurück, wenn nicht gefunden.
Verbindungslebenszyklus
TerminalResultCode Disconnect(CommandOptions options = null)
Trennt die Verbindung vom Host, während das Verbindungsobjekt aktiv bleibt (entwirft nicht). Selten erforderlich – Dispose() übernimmt die Bereinigung.
void Shutdown()
Alias für Dispose(). Trennt Hostprozesse, stoppt sie und gibt Ressourcen frei.
void Dispose()
Trennt die Sitzung, beendet alle Host-broker-Prozesse (x86/x64) und gibt alle verwalteten und nicht verwalteten Ressourcen frei.
Erweitert (Advanced)
TerminalResultCode OverrideScreenResolution(ScreenSize screenSize, CommandOptions options = null)
Überschreibt die Bildschirmabmessungen des Terminals. Verwendung, wenn der Host eine nicht standardmäßige Bildschirmgröße erfordert.
Parameter:
screenSize(ScreenSize) – Zielbildschirmababmessungen.options(CommandOptions, optional) – Timeout und Wartemodus.
Optionen und Konfigurationsklassen
CommandOptions
Steuert das Timeout- und Screen-Wait-Verhalten für einzelne Terminalvorgänge.
| Eigenschaften | Typ | Standard | Beschreibung |
|---|---|---|---|
Timeout | int | 30000 | Millisekunden, die gewartet werden müssen, bevor ein Timeout-Fehler ausgegeben wird. Bei 0 oder negativ wird auf den Dienststandard von 30.000 ms zurückgegriffen. |
WaitType | WaitMode | READY | So wird vor der Ausführung des Vorgangs auf den Bildschirm gewartet. |
// Example: 10-second timeout, wait for screen ready
var opts = new CommandOptions(WaitMode.READY, 10000);
// Example: 10-second timeout, wait for screen ready
var opts = new CommandOptions(WaitMode.READY, 10000);
ConnectionData
Programmgesteuertes Konfigurationsobjekt für Terminalverbindungen. Wird mit GetConnection(ConnectionData) und GetSshConnection() verwendet .
| Eigenschaften | Typ | Standard | Beschreibung |
|---|---|---|---|
ProviderType | TerminalProviderType | UiPathNew | Terminalemulatoranbieter. Verwenden Sie UiPathNew für direkte TCP/SSH-Verbindungen. |
ConnectionType | ConnectionType | Profile | So wird die Verbindung hergestellt: Address (Host/Port – erforderlich für UiPathNew), Profile (Anbieterprofildatei), LowLevel (EHLLAPI). |
ConnectionProtocol | CommunicationType | TELNET | Protokoll: TELNET, SSH oder HPVT. |
TerminalType | TerminalType | Terminal3270 | Terminalemulationstyp. |
Host | string | Hostname oder IP-Adresse des Zielhosts. | |
Port | int | 23 | TCP-Port. Der Standardwert ist 23 (Telnet). SSH verwendet in der Regel 22. |
ShowTerminal | bool | true | Ob das Terminalfenster angezeigt werden soll (falls vom Anbieter unterstützt). |
EnableSSL | bool | false | Aktivieren Sie SSL/TLS für die Verbindung. |
Profile | string | Pfad zur Anbieterprofildatei (für profilbasierte Anbieter: Attachmate, IBM, BlueZone usw.). | |
InProcessMode | bool | false | Ausführen des Terminalanbieters im Prozess (nur generisch/EHLLAPI). |
AttachExisting | bool | false | An eine bereits ausgeführte Terminalsitzung anhängen. true -Wert ist nur für den Attachmate -Anbieter verfügbar |
ProxyType | ProxyType | None | Proxytyp (Keine, HTTP, SockS4, SockS5). |
ProxyHost | string | Hostname des Proxyservers. | |
ProxyPort | int | Proxyserverport. | |
ProxyUser | string | Benutzername für Proxy-Authentifizierung. | |
ProxyPassword | string | Proxy-Authentifizierungskennwort. | |
InternalEncoding | string | Überschreibung der Zeichencodierung (z. B. "IBM037" für EBCDIC). | |
EhllDll | string | Pfad zur EHLLAPI-DLL (generischer Anbieter). | |
EhllFunction | string | "hllapi" | Name der EHLLAPI-Einstiegspunktfunktion. |
EhllSession | string | "A" | Bezeichner der EHLLAPI-Sitzung. |
EhllEnhanced | bool | true | Verwenden Sie den erweiterten EHLLAPI-Modus. |
EhllEncoding | string | Zeichencodierung, die für die EHLLAPI-Textkommunikation verwendet wird (generischer Anbieter). Standardmäßig wird die konfigurierte Codierung des Anbieters verwendet, wenn sie nicht festgelegt oder nicht erkannt wird. | |
EhllBasicMode | bool | false | Bei true wird die Feldanalyse beim Bildschirmabruf deaktiviert. Bildschirmdaten werden nur als Rohtext ohne Feldmetadaten zurückgegeben. Wird für Leistung verwendet, wenn kein Zugriff auf Feldebene erforderlich ist (generischer Anbieter). |
LuName | string | Für 3270/5250: Der Name der Sna Logical Units (LU) zur Anforderung vom Host. Für VT/Wyse/Linux: die Terminal-Antwortzeichenfolge (verwenden Sie ^M für die Wagenrückführung. Hat keine Auswirkungen auf Nicht-SNC- oder Nicht-VT-Verbindungen. | |
TerminalModel | int | 0 | Bezeichner des Terminalmodells. Verwenden Sie den Aufzählungswert für das aktive TerminalType: TerminalModes3270 (3270), TerminalModes5250 (5250, Standardeinstellung ist IBM_5250_3477_FC bei 0), TTVtTermId (VT), TerminalModesHP (HP), TerminalModesWyse (Wyse), TerminalModesLinux (Linux). |
TerminalField
Identifiziert ein Feld oder einen Bildschirmbereich für Lese-/Schreibvorgänge.
| Eigenschaften | Typ | Beschreibung |
|---|---|---|
RowStart | int | Startzeile (1-basiert oder -1 für nicht festgelegt). |
ColStart | int | Startspalte (1-basiert oder -1 für nicht festgelegt). |
RowEnd | int | Endzeile für Bereichsvorgänge (-1 für nicht festgelegt). |
ColEnd | int | Endspalte für Bereichsvorgänge (-1 für nicht festgelegt). |
LabeledBy | string | Text der Beschriftung, die dem Feld vorausgeht. |
FollowedBy | string | Text der Beschriftung, die dem Feld folgt. |
Index | int | Nullbasierter Feldindex (-1 für nicht festgelegt). |
CursorPosition
Stellt eine Zeilen-/Spaltenposition auf dem Terminalbildschirm dar.
| Eigenschaften | Typ | Beschreibung |
|---|---|---|
Row | int | Zeile (1-basiert). Standard: 1. |
Column | int | Spalte (1-basiert). Standard: 1. |
Enumerationsreferenz
WaitMode: NONE, READY, COMPLETE
NONE– Nicht warten; sofort ausführen.READY– Vor der Ausführung auf die Entsperrung der Tastatur warten.COMPLETE– Vor der Ausführung warten, bis alle Bildschirmdaten eingetroffen sind.
TerminalProviderType: UiPathNew, Attachmate, IBM, BlueZone, Generic, AttachmateExtra, ReflectionUnix, ReflectionIBM, Rumba, TandemHLL
UiPathNew– Direkte TCP/SSH-Verbindung ohne Emulator eines Drittanbieters. Unterstützt Telenet, SSH und HPVT.TandemHLL– Tandem-/NonStop-Hostsitzungen überTHLLAPI (THLLW3.DLL/THLLW6.DLL, Attachmate Reflection 6530). VerwendetConnectionType.LowLevelund die gleichenEhll*-Felder wieGeneric. Farbattributdaten werden nicht unterstützt.GetColorAtPositiongibt immerColor.LightGreenzurück.
CommunicationType: TELNET, SSH, HPVT
ConnectionType: Address, Profile, LowLevel
Address– Verbindung über Host/Port. Erforderlich bei VerwendungProviderType.UiPathNew.Profile– Verbinden Sie sich über eine anbieterspezifische Profildatei (Pfad überProfilefestgelegt).LowLevel– Verbindung über EHLLAPI (generischer Anbieter) oderTHLLAPI (TandemHLL-Anbieter).
TerminalType: Terminal3270, Terminal5250, TerminalVT, TerminalHP, TerminalANSI, TerminalT653X, TerminalSCOANSI, TerminalWYSE, TerminalLinux
ControlKey (ausgewählte Werte): Transmit, Tab, BackTab, Return, Escape, BackSpace, Home, End, Insert, Delete, PageUp, PageDown, Up, Down, Left, Right, F1–F24, Shift_F1–Shift_F12, Ctrl_F1–Ctrl_F12, Alt_F1–Alt_F12, PA1–PA3, Clear, Reset, Attention, EraseEOF, EraseInput, CursorSelect, FieldPlus, FieldMinus, FieldExit, Ctrl_A–Ctrl_Z, Tandem_Horizontal_Tab, Tandem_Vertical_Tab
TerminalModes3270 (verwenden mit TerminalType.Terminal3270): IBM_3270_3278_2 (0), IBM_3270_3278_3 (1), IBM_3270_3278_4 (2), IBM_3270_3278_5 (3), IBM_3270_3279_2 (4), IBM_3270_3279_3 ( 5), IBM_3270_3279_4 (6), IBM_3270_3279_5 (7)
TerminalModes5250 (verwenden mit TerminalType.Terminal5250): IBM_5250_3179_2 (54), IBM_5250_3179_220 (60), IBM_5250_3180_2 (52), IBM_5250_3196_A1 (53), IBM_5250_3477_FG (61), IBM_5250_3477_FC ( 62), IBM_5250_5251_1 (55), IBM_5250_5251_11 (56), IBM_5250_5252 (57), IBM_5250_5291_1 (58), IBM_5250_5292_2 (59), IBM_5250_5555_C01 (64), IBM_5250_5555_B01 (65 ), IBM_5250_Printer (63)
TTVtTermId (verwenden mit TerminalType.TerminalVT): VT100 (0), VT101 (1), VT102 (2), VT220 (3), VT240 (4), VT320 ( 5), VT340 (6), VT420 (7), VT100W (10), VT101W (11), VT102W (12), VT220w (13), VT240W (14 ), VT320W (15), VT340W (16), VT420W (17), VT100M (20), VT101M (21), VT102M (22), VT220M (23) , VT240M (24), VT320M (25), VT340M (26), VT420M (27)
TerminalModesHP (verwenden mit TerminalType.TerminalHP): HP_2372A (0), HP_70092 (1), HP_70094 (2)
TerminalModesWyse (verwenden mit TerminalType.TerminalWYSE): WYSE_50_24_80 (0), WYSE_50_24_132 (10), WYSE_60_24_80 (1), WYSE_60_24_132 (11), WYSE_60_42_80 (41), WYSE_60_42_132 ( 51), WYSE_60_43_80 (61), WYSE_60_43_132 (71), WYSE_350_24_80 (2), WYSE_350_24_132 (12)
TerminalModesLinux (verwenden mit TerminalType.TerminalLinux): Linux_24_80 (0), Linux_24_132 (1), Linux_36_80 (2), Linux_36_132 (3), Linux_48_80 (4), Linux_48_132 (5)
Gängige Muster
Melden Sie sich bei einem 3270-Host an und lesen Sie ein Feld
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
Host = "mainframe.corp.com",
Port = 23,
TerminalType = TerminalType.Terminal3270,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.TELNET
};
using var conn = terminal.GetConnection(connData);
// Wait for login screen, then type credentials
conn.WaitText("ENTER USERID", options: new CommandOptions(WaitMode.READY, 30000));
conn.SetField(new TerminalField { LabeledBy = "USERID" }, "myuser");
conn.SetField(new TerminalField { LabeledBy = "PASSWORD" }, "mypassword");
conn.SendControlKey(ControlKey.Transmit);
// Wait for main menu
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Read data
conn.GetText(out string screen);
Log(screen);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
Host = "mainframe.corp.com",
Port = 23,
TerminalType = TerminalType.Terminal3270,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.TELNET
};
using var conn = terminal.GetConnection(connData);
// Wait for login screen, then type credentials
conn.WaitText("ENTER USERID", options: new CommandOptions(WaitMode.READY, 30000));
conn.SetField(new TerminalField { LabeledBy = "USERID" }, "myuser");
conn.SetField(new TerminalField { LabeledBy = "PASSWORD" }, "mypassword");
conn.SendControlKey(ControlKey.Transmit);
// Wait for main menu
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Read data
conn.GetText(out string screen);
Log(screen);
}
SSH-Verbindung mit sicheren Anmeldeinformationen
[Workflow]
public void Execute()
{
var controlKeyDelayMS = 1000;
var connData = new ConnectionData
{
Host = "unix-server.corp.com",
Port = 22,
TerminalType = TerminalType.TerminalVT,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.SSH
};
// sshPwd is a SecureString variable, for example, from Get Credential activity
using var conn = terminal.GetSshConnection(connData, sshUser: "deploy", sshPassword: sshPwd);
conn.WaitText("$", options: new CommandOptions(WaitMode.NONE, 10000));
conn.SendKeys("ls -la /var/log");
conn.SendControlKey(ControlKey.Transmit, controlKeyDelayMS);
conn.GetText(out string output);
Log(output);
}
[Workflow]
public void Execute()
{
var controlKeyDelayMS = 1000;
var connData = new ConnectionData
{
Host = "unix-server.corp.com",
Port = 22,
TerminalType = TerminalType.TerminalVT,
ProviderType = TerminalProviderType.UiPathNew,
ConnectionType = ConnectionType.Address,
ConnectionProtocol = CommunicationType.SSH
};
// sshPwd is a SecureString variable, for example, from Get Credential activity
using var conn = terminal.GetSshConnection(connData, sshUser: "deploy", sshPassword: sshPwd);
conn.WaitText("$", options: new CommandOptions(WaitMode.NONE, 10000));
conn.SendKeys("ls -la /var/log");
conn.SendControlKey(ControlKey.Transmit, controlKeyDelayMS);
conn.GetText(out string output);
Log(output);
}
Navigieren Sie in einem Menü nach Feldposition (EHLLAPI/Generischer Anbieter)
Verwenden Sie die Automatisierung einer Terminalsitzung, die von einem Emulator eines Drittanbieters verwaltet wird und eine EHLLAPI-Schnittstelle verfügbar macht (z. B. eine laufende IBM PCOMM- oder BlueZone-Sitzung, auf die über ihre EHLLAPI-DLL zugegriffen wird).
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.Generic,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\IBM\Personal Communications\PCSHLL32.DLL",
EhllFunction = "hllapi",
EhllSession = "A",
EhllEnhanced = true
};
using var conn = terminal.GetConnection(connData);
// Move cursor to the Option field and type a menu choice
conn.MoveCursor(row: 4, column: 14);
conn.SendKeys("2");
conn.SendControlKey(ControlKey.Transmit);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 20000));
// Read a region of the response screen (rows 5-20, full width)
var region = new TerminalField { RowStart = 5, ColStart = 1, RowEnd = 20, ColEnd = 80 };
conn.GetScreenArea(region, out string result);
Log(result);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.Generic,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\IBM\Personal Communications\PCSHLL32.DLL",
EhllFunction = "hllapi",
EhllSession = "A",
EhllEnhanced = true
};
using var conn = terminal.GetConnection(connData);
// Move cursor to the Option field and type a menu choice
conn.MoveCursor(row: 4, column: 14);
conn.SendKeys("2");
conn.SendControlKey(ControlKey.Transmit);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 20000));
// Read a region of the response screen (rows 5-20, full width)
var region = new TerminalField { RowStart = 5, ColStart = 1, RowEnd = 20, ColEnd = 80 };
conn.GetScreenArea(region, out string result);
Log(result);
}
Auf Verarbeitung warten und ein Ergebnisfeld lesen (IBM Personal Communications/gespeichertes Profil)
Verwendung, wenn die Verbindung in einer IBM PCOMM-Workspace-Datei (.ws) vorkonfiguriert ist. PCOMM muss auf der Robotermaschine installiert sein.
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.IBM,
ConnectionType = ConnectionType.Profile,
Mode = ConnectionMode.Play,
ShowTerminal = true,
Profile = @"C:\PComm\Profiles\MainframeSession.ws"
};
using var conn = terminal.GetConnection(connData);
// Submit a transaction
conn.SetField(new TerminalField { LabeledBy = "TRAN CODE" }, "INQ01");
conn.SetField(new TerminalField { LabeledBy = "ACCOUNT " }, accountNumber);
conn.SendControlKey(ControlKey.Transmit);
// Wait for either success or error indicator
var opts = new CommandOptions(WaitMode.READY, 30000);
conn.WaitScreenReady(opts);
// Check status field
conn.GetField(new TerminalField { LabeledBy = "STATUS " }, out string status);
if (status.Trim() == "00")
{
conn.GetField(new TerminalField { LabeledBy = "BALANCE " }, out string balance);
Log($"Balance: {balance}");
}
else
{
conn.GetText(out string screen);
throw new Exception($"Transaction failed. Status: {status}. Screen: {screen}");
}
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.IBM,
ConnectionType = ConnectionType.Profile,
Mode = ConnectionMode.Play,
ShowTerminal = true,
Profile = @"C:\PComm\Profiles\MainframeSession.ws"
};
using var conn = terminal.GetConnection(connData);
// Submit a transaction
conn.SetField(new TerminalField { LabeledBy = "TRAN CODE" }, "INQ01");
conn.SetField(new TerminalField { LabeledBy = "ACCOUNT " }, accountNumber);
conn.SendControlKey(ControlKey.Transmit);
// Wait for either success or error indicator
var opts = new CommandOptions(WaitMode.READY, 30000);
conn.WaitScreenReady(opts);
// Check status field
conn.GetField(new TerminalField { LabeledBy = "STATUS " }, out string status);
if (status.Trim() == "00")
{
conn.GetField(new TerminalField { LabeledBy = "BALANCE " }, out string balance);
Log($"Balance: {balance}");
}
else
{
conn.GetText(out string screen);
throw new Exception($"Transaction failed. Status: {status}. Screen: {screen}");
}
}
Erkennt eine Feldfarbe für bedingte Logik
[Workflow]
public void Execute()
{
var conn = terminal.GetConnection(connectionString);
try
{
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 10000));
// Check if the status indicator at row 24, col 1 is red (error)
conn.GetColorAtPosition(24, 1, out Color statusColor);
if (statusColor == Color.Red)
{
conn.GetText(out string errorScreen);
Log($"Error screen detected: {errorScreen}");
}
else
{
conn.GetField(new TerminalField { Index = 0 }, out string firstField);
Log($"First field: {firstField}");
}
}
finally
{
conn.Dispose();
}
}
[Workflow]
public void Execute()
{
var conn = terminal.GetConnection(connectionString);
try
{
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 10000));
// Check if the status indicator at row 24, col 1 is red (error)
conn.GetColorAtPosition(24, 1, out Color statusColor);
if (statusColor == Color.Red)
{
conn.GetText(out string errorScreen);
Log($"Error screen detected: {errorScreen}");
}
else
{
conn.GetField(new TerminalField { Index = 0 }, out string firstField);
Log($"First field: {firstField}");
}
}
finally
{
conn.Dispose();
}
}
Stellen Sie eine Verbindung mit einem Tandem-/NonStop-Host überTHLLAPI her
Verwenden Sie diese Option beim Automatisieren einer Tandem-/NonStop-Sitzung, die über Attachmate Reflection 6530 ausgeführt wird. Der EhllFunction -Einstiegspunkt fürTHLLAPI ist "thllapi" (nicht "hllapi"). Farbattributdaten sind für diesen Anbieter nicht verfügbar.
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.TandemHLL,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\Attachmate\Reflection\THLLW6.DLL",
EhllFunction = "thllapi",
EhllSession = "A"
};
using var conn = terminal.GetConnection(connData);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Type a command and submit with Horizontal Tab to move between fields
conn.SetField(new TerminalField { LabeledBy = "LOGON:" }, "myuser");
conn.SendControlKey(ControlKey.Tandem_Horizontal_Tab);
conn.SetField(new TerminalField { LabeledBy = "PASSWORD:" }, "mypassword");
conn.SendControlKey(ControlKey.Return);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
conn.GetText(out string screen);
Log(screen);
}
[Workflow]
public void Execute()
{
var connData = new ConnectionData
{
ProviderType = TerminalProviderType.TandemHLL,
ConnectionType = ConnectionType.LowLevel,
EhllDll = @"C:\Program Files\Attachmate\Reflection\THLLW6.DLL",
EhllFunction = "thllapi",
EhllSession = "A"
};
using var conn = terminal.GetConnection(connData);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
// Type a command and submit with Horizontal Tab to move between fields
conn.SetField(new TerminalField { LabeledBy = "LOGON:" }, "myuser");
conn.SendControlKey(ControlKey.Tandem_Horizontal_Tab);
conn.SetField(new TerminalField { LabeledBy = "PASSWORD:" }, "mypassword");
conn.SendControlKey(ControlKey.Return);
conn.WaitScreenReady(new CommandOptions(WaitMode.READY, 15000));
conn.GetText(out string screen);
Log(screen);
}
- Automatisch importierte Namensräume
- Dienstübersicht
- Verbindungsmethoden
TerminalConnection GetConnection(string connectionString)TerminalConnection GetConnection(ConnectionData connectionData)TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)- Terminalverbindung
- Eigenschaften
- Events
- Bildschirmlesemethoden
- Feldmethoden
- Cursor-Methoden
- Wichtige Sendemethoden
- Wartemethoden
- Verbindungslebenszyklus
- Erweitert (Advanced)
- Optionen und Konfigurationsklassen
CommandOptionsConnectionDataTerminalFieldCursorPosition- Enumerationsreferenz
- Gängige Muster
- Melden Sie sich bei einem 3270-Host an und lesen Sie ein Feld
- SSH-Verbindung mit sicheren Anmeldeinformationen
- Navigieren Sie in einem Menü nach Feldposition (EHLLAPI/Generischer Anbieter)
- Auf Verarbeitung warten und ein Ergebnisfeld lesen (IBM Personal Communications/gespeichertes Profil)
- Erkennt eine Feldfarbe für bedingte Logik
- Stellen Sie eine Verbindung mit einem Tandem-/NonStop-Host überTHLLAPI her