- Vue d'ensemble (Overview)
- Automatisation de l'interface utilisateur
- À propos du package d'activités UIAutomation
- Applications et technologies automatisées avec UI Automation
- Compatibilité du projet
- UI-ANA-016 - Extraire l'URL ouverte du navigateur
- UI-ANA-017 - ContinuerSurErreur (ContinueOnError) True
- UI-ANA-018 - Répertorier les activités d'OCR/d'image
- UI-DBP-006 - Utilisation du conteneur
- UI-DBP-013 - Utilisation abusive de l’automatisation Excel
- UI-DBP-030 - Utilisation de variables interdites dans les sélecteurs
- UI-DBP-031 : Vérification de l’activité
- UI-PRR-001 - Simuler un clic
- UI-PRR-002 - Type de simulation
- UI-PRR-003 - Ouverture d'une utilisation abusive de l'application
- UI-PRR-004 - Délais codés en dur
- UI-REL-001 - Idx volumineux dans les sélecteurs
- UI-SEC-004 - Données d’e-mail du sélecteur
- UI-SEC-010 - Restrictions d'applications/d'URL
- UI-USG-011 - Attributs non autorisés
- UX-SEC-010 - Restrictions d'applications/d'URL
- UX-DBP-029 - Utilisation d'un mot de passe non sécurisé
- UI-PST-001 - Niveau du journal d'audit dans les paramètres du projet
- Outil de migration de navigateur UiPath
- Zone de détourage
- Enregistreur de Computer Vision
- À propos des éléments d'interface utilisateur
- Propriétés des activités de l'interface utilisateur
- Exemple d'utilisation des méthodes de saisie
- Méthodes de sortie ou de capture de données d'écran
- Exemple d'utilisation de méthodes de sortie ou de capture de données d'écran
- Génération de tables à partir de données non structurées
- Capture relative de données
- À propos de l'automatisation des images et des textes
- Activités liées à la souris et au clavier
- Exemple d'utilisation de l'automatisation de la souris et du clavier
- Les activités de type texte
- Exemple d'utilisation d'automatisation de texte
- Activités de type OCR
- Activités de type image
- Exemple d'utilisation de l'automatisation d'image et d'OCR
- Index des activités
- Activer (Activate)
- Base d'ancrage (Anchor Base)
- Lier à un navigateur (Attach Browser)
- Lier à une fenêtre (Attach Window)
- Block User Input
- Légende (Callout)
- Vérifier (Check)
- Cliquer (Click)
- Cliquer sur l'image (Click Image)
- Déclencheur de clic image (Click Image Trigger)
- Cliquer sur le texte OCR (Click OCR Text)
- Cliquer sur le texte (Click Text)
- Déclencheur de clic (Click Trigger)
- Fermer l'application (Close Application)
- Fermer l'onglet (Close Tab)
- Fermer la fenêtre (Close Window)
- Context Aware Anchor
- Copier le texte sélectionné (Copy Selected Text)
- Element Attribute Change Trigger
- Élément existant (Element Exists)
- Étendue de l'élément (Element Scope)
- Element State Change Trigger
- Export UI Tree
- Extraire les données structurées (Extract Structured Data)
- Rechercher les enfants (Find Children)
- Rechercher l'élément (Find Element)
- Rechercher l'image (Find Image)
- Rechercher les correspondances de l'image (Find Image Matches)
- Rechercher une position de texte OCR (Find OCR Text Position)
- Rechercher l'élément relatif (Find Relative Element)
- Rechercher la position du texte (Find Text Position)
- Obtenir la fenêtre active (Get Active Window)
- Obtenir l'ancêtre (Get Ancestor)
- Obtenir l'attribut (Get Attribute)
- Obtenir les infos de l'événement (Get Event Info)
- Récupérer du presse-papiers (Get From Clipboard)
- Obtenir le texte complet (Get Full Text)
- Obtenir le texte OCR (Get OCR Text)
- Récupérer le mot de passe (Get Password)
- Obtenir la position (Get Position)
- Obtenir l'élément source (Get Source Element)
- Obtenir le texte (Get Text)
- Obtenir le texte visible (Get Visible Text)
- Revenir en arrière (Go Back)
- Avancer (Go Forward)
- Accéder à l'accueil (Go Home)
- Google Cloud Vision OCR
- Masquer la fenêtre (Hide Window)
- Mettre en surbrillance (Highlight)
- Déclencheur de raccourci (Hotkey Trigger)
- Pointer (Hover)
- Pointer sur l'image (Hover Image)
- Pointer sur le texte OCR (Hover OCR Text)
- Pointer sur le texte (Hover Text)
- Image existante (Image Exists)
- Indiquer sur l'écran (Indicate On Screen)
- Injecter du code .NET
- Inject Js Script
- Invoquer la méthode ActiveX
- Déclencheur de pression de touche (Key Press Trigger)
- Charger l'image (Load Image)
- Agrandir la fenêtre (Maximize Window)
- Microsoft Azure ComputerVision OCR
- Reconnaissance optique des caractères Microsoft (Microsoft OCR)
- Microsoft Project Oxford Online OCR
- Réduire la fenêtre (Minimize Window)
- Surveiller les événements (Monitor Events)
- Déclencheur de souris (Mouse Trigger)
- Déplacer la fenêtre (Move Window)
- Accéder à (Navigate To)
- Texte OCR existant (OCR Text Exists)
- Sur affichage de l'élément (On Element Appear)
- Sur disparition de l'élément (On Element Vanish)
- Sur apparition de l'image (On Image Appear)
- Sur disparition de l'image (On Image Vanish)
- Ouvrir l'application (Open Application)
- Ouvrir le navigateur (Open Browser)
- Actualiser le navigateur (Refresh Browser)
- Relire l'événement utilisateur (Replay User Event)
- Restaurer la fenêtre (Restore Window)
- Enregistrer l'image (Save Image)
- Sélectionner l'élément (Select Item)
- Sélectionner plusieurs éléments (Select Multiple Items)
- Envoyer le raccourci (Send Hotkey)
- Définir la zone de détourage (Set Clipping Region)
- Définir le focus (Set Focus)
- Définir le texte (Set Text)
- Placer dans le presse-papiers (Set To Clipboard)
- Définir l'attribut Web (Set Web Attribute)
- Afficher la fenêtre (Show Window)
- Déclencher le processus (Start Process)
- Déclencheur système (System Trigger)
- Prendre une capture d'écran (Take Screenshot)
- Tesseract OCR
- Texte existant (Text Exists)
- Info-bulle
- Saisir dans (Type Into)
- Saisir un texte sécurisé (Type Secure Text)
- Utiliser le premier plan
- Attendre un attribut (Wait Attribute)
- Attendre que l'élément disparaisse (Wait Element Vanish)
- Attendre que l'image disparaisse (Wait Image Vanish)
- Vérification de l’accessibilité
- Application event trigger
- Block User Input
- Check/Uncheck
- Check App State
- Check Element
- Cliquer (Click)
- Click Event Trigger
- Glisser et déposer
- Extract Table Data
- Find Elements
- For Each UiElement
- Get Browser Data
- Get Clipboard (Obtenir le Presse-papiers)
- Obtenir le texte (Get Text)
- Get URL
- Go To URL
- Mettre en surbrillance (Highlight)
- Pointer (Hover)
- Inject Js Script
- Raccourcis clavier
- Keypress Event Trigger
- Mouse scroll
- Navigate Browser
- Sélectionner l'élément (Select Item)
- Set Browser Data
- Set Clipboard (Définir le Presse-papiers)
- Définir le navigateur du runtime (Set Runtime Browser)
- Définir le focus (Set Focus)
- Définir le texte (Set Text)
- Prendre une capture d'écran (Take Screenshot)
- Saisir dans (Type Into)
- Unblock User Input
- Use Application/Browser
- Window operation
- Joindre
- Vérifier (Check)
- Cliquer (Click)
- Glisser et déposer
- Extraire des données
- Obtenir l'attribut (Get Attribute)
- ObtenirEnfants
- ObtenirCibleRuntime
- GetText
- Get URL
- GoToUrl
- Mettre en surbrillance (Highlight)
- Pointer (Hover)
- IsEnabled
- Raccourci clavier
- Mouse scroll
- Ouvrir
- Sélectionner l'élément (Select Item)
- Prendre une capture d'écran (Take Screenshot)
- Saisir dans (Type Into)
- ÉtatAttente
- Effectuez une recherche par navigateur et récupérez les résultats à l'aide des API UI Automation
- Navigation sur le Web
- Rechercher des images
- Cliquer sur des images
- Déclencher et surveiller des événements
- Créer et remplacer des fichiers
- Pages HTML : extraire et manipuler des informations
- Manipulation des fenêtres
- Sélection de liste automatisée
- Rechercher et manipuler des éléments de fenêtre
- Gérer l'automatisation du texte
- Charger et traiter des images
- Gérer les actions activées par la souris
- Automatiser l'exécution des applications
- Exécution automatisée d'une application locale
- Navigation avec le navigateur
- Automatisation Web
- Exemple de fonctionnalités du déclencheur
- Activer la prise en charge d’UI Automation dans DevExpress
- Computer Vision Local Server
- Automatisation mobile
- Notes de publication
- À propos de l'architecture d'automatisation des appareils mobiles
- Compatibilité du projet
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Installer l'application
- Gérer l'application actuelle
- Gérer une autre application
- Ouvrir DeepLink
- Ouvrir l'URL
- Mobile Device Connection
- Balayer directionnel
- Dessiner un modèle
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Prendre une capture d'écran (Take Screenshot)
- Prendre une partie de capture d'écran
- Élément existant (Element Exists)
- Execute Command
- Obtenir l'attribut (Get Attribute)
- Get Selected Item
- Obtenir le texte (Get Text)
- Set Selected Item
- Définir le texte (Set Text)
- Balayer
- Tap
- Saisir texte
- Premiers pas avec les API d’automatisation mobile
- Gestion des boîtes de dialogue contextuelles dans les automatisations mobiles
- Creating variables from selector attributes
- Créer des workflows d'automatisation mobile
- Utiliser l’automatisation mobile pour les applications de banque mobile
- Automatisation pour les applications React Native
- Terminal
- Notes de publication
- À propos du package d'activités Terminal
- Compatibilité du projet
- Meilleures pratiques
- Rechercher un texte (Find Text)
- Get Color At Position
- Obtenir la position du curseur (Get Cursor Position)
- Obtenir le champ (Get Field)
- Obtenir le champ en position (Get Field at Position)
- Accéder à la zone d'écran (Get Screen Area)
- Obtenir le texte (Get Text)
- Obtenir le texte en position (Get Text at Position)
- Déplacer le curseur (Move Cursor)
- Move Cursor to Text
- Envoyer la touche Contrôle (Send Control Key)
- Envoyer les touches (Send Keys)
- Envoyer les touches en toute sécurité (Send Keys Secure)
- Définir le champ (Set Field)
- Définir le champ en position (Set Field at Position)
- Session de terminal (Terminal Session)
- Attendre le texte de champ (Wait Field Text)
- Wait Screen Ready
- Attendre le texte d'écran (Wait Screen Text)
- Attendre le texte en position (Wait Text at Position)
- API d'automatisation codée par terminal

Activités UIAutomation
API d'automatisation codée par terminal
UiPath.Terminal.Activities
API de workflow codée pour automatiser les sessions d'émulation de terminal. Fournit des méthodes pour établir des connexions à IBM 3270/5250, VT, HP, ANSI, Wyse et d’autres systèmes de terminal hérités via BlueZone, IBM PC Puis, Attachmate ou des connexions TCP/SSH directes, puis interagir avec l’écran du terminal de manière programmatique.
Accesseur au service : terminal (type ITerminalService) Package requis : "UiPath.Terminal.Activities": "*" dans les dépendances project.json
Namespaces importés automatiquement
Ces espaces de noms sont automatiquement disponibles dans les workflows codés lorsque ce package est installé :
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
UiPath.Terminal
UiPath.Terminal.Data
UiPath.Terminal.Activities.API
UiPath.Terminal.Enums
Vue d’ensemble du service
Le service terminal fournit des méthodes d’usine qui ouvrent une connexion de terminal et renvoient un objet TerminalConnection . L’objet de connexion est la zone d’API pour toutes les opérations de terminal : lectures d’écran, accès au champ, envoi de touches et attente.
Il s’agit d’une API basée sur la connexion:
- Appelez une méthode de service (
GetConnection/GetSshConnection) pour ouvrir et vous connecter. - Utilisez le
TerminalConnectionrenvoyé pour effectuer les opérations du terminal. - Ignorez la connexion une fois que vous avez terminé (ou utilisez une instruction
using).
En mode de workflow codé, toutes les méthodes TerminalConnection génèrent TerminalConnectionException en cas d'échec au lieu de renvoyer des codes d'erreur. Cela signifie que vous n'avez pas besoin de vérifier les valeurs renvoyées. Il suffit pour cela de gérer les exceptions.
Méthodes de connexion
TerminalConnection GetConnection(string connectionString)
Ouvre une connexion de terminal à l'aide d'une chaîne de connexion sérialisée. La chaîne de connexion encode le type de fournisseur, l'hôte, le port, le protocole et d'autres paramètres. Utilisez la boîte de dialogue Paramètres de connexion de l’activité Session de terminal XAML pour générer une chaîne valide.
Paramètres :
connectionString(string) — Chaîne de connexion sérialisée. Exemple : obtenu en configurant une activité Session de terminal et en copiant la valeur de la propriétéConnectionString.
Renvoie ce qui suit : TerminalConnection — Une session de terminal connectée et ouverte. Implémente IDisposable; à l’intérieur d’une instruction using .
Génère : TerminalConnectionException si la connexion ne peut pas être établie dans le délai d’expiration.
TerminalConnection GetConnection(ConnectionData connectionData)
Ouvre une connexion de terminal à l’aide d’un objet ConnectionData , permettant une configuration par programmation sans chaîne de connexion sérialisée.
Paramètres :
connectionData(ConnectionData) — Objet de configuration spécifiant les paramètres du fournisseur, de l'hôte, du port, du protocole et de l'émulation.
Renvoie ce qui suit : TerminalConnection — Une session de terminal connectée et ouverte.
Génère : TerminalConnectionException si la connexion ne peut pas être établie.
TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)
Ouvre une connexion de terminal SSH avec des informations d'identification explicites. Le connectionData doit spécifier ProviderType = UiPathNew et ConnectionProtocol = SSH.
Paramètres :
connectionData(ConnectionData) — Configuration de la connexion. Doit avoirProviderType = TerminalProviderType.UiPathNewetConnectionProtocol = CommunicationType.SSH.sshUser(string) — Nom d'utilisateur SSH.sshPassword(SecureString) — Mot de passe SSH. Utilisez une variableSecureString(par exemple, de Obtenir l'information d'identification) pour éviter l'exposition en texte brut.
Renvoie ce qui suit : TerminalConnection — Une session de terminal SSH ouverte et connectée.
Génère : TerminalConnectionException si la connexion échoue, ou ArgumentException si ProviderType ou ConnectionProtocol n’est pas valide.
ConnexionTerminaison
TerminalConnection est le handle renvoyé par toutes les méthodes de service. Il fournit toutes les opérations d’interaction du terminal et implémente IDisposable.
Ce type implémente IDisposable. Utilisez toujours l’instruction using ou appelez Dispose() / Shutdown() explicitement. L'élimination déconnecte la session et arrête tous les processus hôtes.
Propriétés
| Propriété | Saisie de texte | Description |
|---|---|---|
Connected | bool | true si la session est actuellement connectée à l’hôte. |
ConnectionString | string | La chaîne de connexion sérialisée utilisée pour établir cette connexion. |
DefaultCmdOptions | CommandOptions | Les options de délai d’expiration et de mode d’attente par défaut appliquées à toutes les opérations lorsqu’elles ne sont pas explicitement remplacées. |
Events
| Événement (Event) | Description |
|---|---|
TerminalScreenChanged | Élevé lorsque le contenu de l'écran du terminal change. |
TerminalFieldChanged | Déclenché lorsque la valeur d’un champ change. |
TerminalCursorChanged | Élevé lorsque la position du curseur change. |
TerminalConnectionChanged | Déclenché lorsque le statut de la connexion change (par exemple, connexion/déconnexion). |
TerminalErrorRaised | Déclenché lorsqu’une erreur de terminal se produit de manière asynchrone. |
Méthodes de lecture d'écran
TerminalResultCode GetText(out string text, CommandOptions options = null)
Lit tout le contenu textuel visible de l’écran du terminal.
Paramètres :
text(out string) — Reçoit le texte complet de l'écran.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente. La valeur par défaut estDefaultCmdOptions.
Renvoie ce qui suit : TerminalResultCode.Success (ou génère TerminalConnectionException en cas d'échec en mode de workflow codé).
TerminalResultCode GetTextAtPosition(TerminalField criteria, int? length, out string text, CommandOptions options = null)
Lit le texte à partir de l'écran à partir de la position définie par criteria. Limite éventuellement le nombre de caractères lus.
Paramètres :
criteria(TerminalField) — Définit la position de départ viaRowStart/ColStart.length(int?, facultatif) — Nombre de caractères à lire.nulllit jusqu'à la fin de la ligne.text(out string) — Reçoit le texte lu à partir de la position.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode GetScreenArea(TerminalField criteria, out string text, CommandOptions options = null)
Lit le texte d'une région rectangle de l'écran définie par criteria.
Paramètres :
criteria(TerminalField) — Définit la région en utilisantRowStart,ColStart,RowEnd,ColEnd.text(out string) — Reçoit le texte de la région.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode GetColorAtPosition(int row, int column, out Color color, CommandOptions options = null)
Récupère la couleur de premier plan du caractère à la position spécifiée.
Paramètres :
row(int) — Ligne (Basée sur 1).column(int) — Colonne (basée sur 1).color(out Color) — Reçoit la valeurSystem.Drawing.Color.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
ScreenData GetScreen(CommandOptions options = null)
Renvoie l'objet de données d'écran brut en incluant tous les attributs de champ et les données de caractères.
Paramètres :
options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
Renvoie ce qui suit : ScreenData avec le contenu de l'écran et les métadonnées du champ, ou null si l'option n'est pas connectée.
Méthodes de champ
TerminalResultCode GetField(TerminalField field, out string text, CommandOptions options = null)
Lit le contenu textuel d’un champ identifié par ses critères (libellé, index ou coordonnées).
Paramètres :
field(TerminalField) — Identification du champ. DéfinissezLabeledBy,FollowedBy,Indexou des propriétés de coordonnées.text(out string) — Reçoit le texte de champ.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode SetField(TerminalField criteria, string text, CommandOptions options = null)
Écrit du texte dans le champ correspondant aux critères.
Paramètres :
criteria(TerminalField) — Identification du champ. DéfinissezLabeledBy,FollowedBy,Indexou des propriétés de coordonnées.text(string) — Texte à écrire.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
Méthodes du curseur
TerminalResultCode GetCursorPosition(out CursorPosition cursorPosition, CommandOptions options = null)
Récupère la ligne et la colonne actuelles du curseur du terminal.
Paramètres :
cursorPosition(out CursorPosition) — Reçoit la position du curseur (Row,Column).options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode MoveCursor(int row, int column, CommandOptions options = null)
Déplace le curseur du terminal vers la ligne et la colonne spécifiées.
Paramètres :
row(int) — Ligne cible (Basée sur 1).column(int) — Colonne cible (Basée sur 1).options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode MoveCursor(CursorPosition cursor, CommandOptions options = null)
Déplace le curseur à l'aide d'un objet CursorPosition .
Paramètres :
cursor(CursorPosition) — Position de la cible.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
Méthodes d’envoi clés
TerminalResultCode SendKeys(string keys, CommandOptions options = null)
Envoie une chaîne de texte au terminal à la position actuelle du curseur.
Paramètres :
keys(string) — Texte à envoyer.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode SendKeysSecure(SecureString keys, CommandOptions options = null)
Envoie une SecureString au terminal. La chaîne est déchiffrée en mémoire, puis envoyée en mémoire tampon non gérée. À utiliser pour les mots de passe.
Paramètres :
keys(SecureString) — Texte sécurisé à envoyer.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode SendControlKey(ControlKey key, CommandOptions options = null)
Envoie une touche Contrôle au terminal.
Paramètres :
key(ControlKey) — La clé de contrôle à envoyer. Voir l’énumérationControlKey.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode SendControlKey(ControlKey key, int delayMS, CommandOptions options = null)
Envoie une touche de contrôle, puis attend un nombre spécifié de millisecondes avant de renvoyer. Utile lorsque l’hôte a besoin de temps de traitement après une clé.
Paramètres :
key(ControlKey) — La clé de contrôle à envoyer.delayMS(int) — Millisecondes en veille après l'envoi de la clé.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
Méthodes d'attente
TerminalResultCode WaitScreenReady(CommandOptions options = null)
Attend que le clavier du terminal soit déverrouillé et que l’écran soit prêt pour la saisie.
Paramètres :
options(CommandOptions, facultatif) — Délai d'attente et mode d'attente. DéfinissezTimeoutpour contrôler la durée d'attente.
TerminalResultCode WaitText(string text, TerminalField criteria = null, bool matchCase = true, CommandOptions options = null)
Attend que le texte spécifié s'affiche sur l'écran du terminal ou dans un champ spécifique si criteria est fourni.
Paramètres :
text(string) — Texte à attendre.criteria(TerminalField, facultatif) — Lorsque cette option est définie, attend le texte dans le champ spécifique. Lorsquenullattend, le texte se trouve n’importe où à l’écran.matchCase(bool, facultatif) — Comparaison sensible à la casse. Par défaut :true.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
TerminalResultCode FindTextInScreen(string text, CursorPosition startPosition, bool ignoreCase, out CursorPosition position, CommandOptions options = null)
Recherche l'écran pour une chaîne de texte commençant par startPosition.
Paramètres :
text(string) — Texte à rechercher.startPosition(CursorPosition) — Position de recherche de départ.ignoreCase(bool) — Recherche insensible à la casse.position(out CursorPosition) — Reçoit les coordonnées où le texte a été trouvé.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
Renvoie ce qui suit : TerminalResultCode.Success si trouvé ; génère (ou renvoie InvalidCoordinates) s’il est introuvable.
Cycle de vie de connexion
TerminalResultCode Disconnect(CommandOptions options = null)
Se déconnecte de l'hôte tout en maintenant l'objet de connexion actif (n'est pas supprimé). Rarement nécessaire — Dispose() gère le nettoyage.
void Shutdown()
Alias pour Dispose(). Se déconnecte, arrête les processus hôtes et libère des ressources.
void Dispose()
Déconnecte la session, arrête tous les processus de courtier de l'hôte (x86/x64) et libéra toutes les ressources gérées et non gérées.
Avancé
TerminalResultCode OverrideScreenResolution(ScreenSize screenSize, CommandOptions options = null)
Remplace les dimensions de l'écran du terminal. À utiliser lorsque l'hôte a besoin d'une taille d'écran non standard.
Paramètres :
screenSize(ScreenSize) — Dimensions de l'écran cible.options(CommandOptions, facultatif) — Délai d'attente et mode d'attente.
Classes d’options et de configuration
CommandOptions
Contrôle le délai d’attente et le comportement d’attente d’écran pour les opérations de terminal individuelles.
| Propriété | Saisie de texte | Default | Description |
|---|---|---|---|
Timeout | int | 30000 | Millisecondes à attendre avant de générer une erreur de délai d’attente. Lorsqu’elle est 0 ou négative, elle revient à la valeur par défaut du service de 30 000 ms. |
WaitType | WaitMode | READY | Comment attendre l'écran avant d'exécuter l'opération. |
// 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
Objet de configuration programmatique pour les connexions de terminal. Utilisée avec GetConnection(ConnectionData) et GetSshConnection().
| Propriété | Saisie de texte | Default | Description |
|---|---|---|---|
ProviderType | TerminalProviderType | UiPathNew | Fournisseur d’émulateur de terminal. Utilisez UiPathNew pour les connexions TCP/SSH directes. |
ConnectionType | ConnectionType | Profile | Mode d'établissement de la connexion : Address (hôte/port — requis pour UiPathNew), Profile (fichier de profil du fournisseur), LowLevel (EHLLAPI). |
ConnectionProtocol | CommunicationType | TELNET | Protocole : TELNET, SSH ou HPVT. |
TerminalType | TerminalType | Terminal3270 | Type d’émulation de terminal. |
Host | string | Nom d'hôte ou adresse IP de l'hôte cible. | |
Port | int | 23 | Port TCP. La valeur par défaut est 23 (Telnet) ; SSH utilise généralement 22. |
ShowTerminal | bool | true | S'il faut afficher la fenêtre du terminal (si prise en charge par le fournisseur). |
EnableSSL | bool | false | Activez SSL/TLS pour la connexion. |
Profile | string | Chemin d’accès au fichier de profil du fournisseur. | |
InProcessMode | bool | false | Exécutez le fournisseur de terminal en cours de processus (Generic/EHLLAPI uniquement). |
AttachExisting | bool | false | Connectez-vous à une session de terminal déjà en cours d'exécution. Valeur true uniquement disponible pour le fournisseur Attachmate |
ProxyType | ProxyType | None | Type de proxy (Aucune, HTTP, SOCKS4, SOCKS5). |
ProxyHost | string | Nom d'hôte du serveur proxy. | |
ProxyPort | int | Port du serveur proxy. | |
ProxyUser | string | Nom d'utilisateur d'authentification du proxy. | |
ProxyPassword | string | Mot de passe d'authentification du proxy. | |
InternalEncoding | string | Remplacement d'encodage de caractères (par exemple, "IBM037" pour EBCDIC). | |
EhllDll | string | Chemin d'accès à EHLLAPI DLL (fournisseur générique). | |
EhllFunction | string | "hllapi" | Nom de la fonction du point d’entrée EHLLAPI. |
EhllSession | string | "A" | Identificateur de session EHLLAPI. |
EhllEnhanced | bool | true | Utiliser le mode EHLLAPI amélioré. |
EhllEncoding | string | Encodage de caractères utilisé pour la communication textuelle EHLLAPI (fournisseur générique). Utilise par défaut l’encodage configuré du fournisseur s’il n’est pas défini ou non reconnu. | |
EhllBasicMode | bool | false | Lorsque true, désactive l'analyse des champs lors de la récupération de l'écran. Les données d’écran sont renvoyées sous forme de texte brut uniquement, sans métadonnées de champ. À utiliser pour les performances lorsque l’accès au niveau du champ n’est pas nécessaire (fournisseur générique). |
LuName | string | Pour 3270/5250 : le nom de l'unité logique SNA à demander à l'hôte. ^M VT/Wyse/Linux : la chaîne de réponse du terminal. Aucun effet sur les connexions non SNA ou VT. | |
TerminalModel | int | 0 | Identifiant de modèle de terminal. Utilisez la valeur enum pour le TerminalType actif : TerminalModes3270 (3270), TerminalModes5250 (5250, par défaut sur IBM_5250_3477_FC lorsque 0), TTVtTermId (VT), TerminalModesHP (HP), TerminalModesWyse (Wyse), TerminalModesLinux (Linux). |
TerminalField
Identifie un champ ou une région d’écran pour les opérations de lecture/d’écriture.
| Propriété | Saisie de texte | Description |
|---|---|---|
RowStart | int | Ligne de départ (dans 1, ou -1 pour non défini). |
ColStart | int | Colonne de début (dans 1, ou -1 pour non défini). |
RowEnd | int | Ligne de fin pour les opérations de zone (-1 pour non défini). |
ColEnd | int | Colonne de fin pour les opérations de zone (-1 pour non défini). |
LabeledBy | string | Texte du libellé qui précède le champ. |
FollowedBy | string | Texte du libellé qui suit le champ. |
Index | int | Index de champ de base zéro (-1 pour non défini). |
CursorPosition
Représente un emplacement de ligne/colonne sur l’écran du terminal.
| Propriété | Saisie de texte | Description |
|---|---|---|
Row | int | Ligne (1). Par défaut : 1. |
Column | int | Colonne (1). Par défaut : 1. |
Référence Énumération
WaitMode: NONE, READY, COMPLETE
NONE— Ne pas attendre ; exécuter immédiatement.READY— Attendez que le clavier soit déverrouillé avant d’exécuter.COMPLETE: Attendre que toutes les données de l'écran arrivent avant l'exécution.
TerminalProviderType: UiPathNew, Attachmate, IBM, BlueZone, Generic, AttachmateExtra, ReflectionUnix, ReflectionIBM, Rumba, TandemHLL
UiPathNew— Connexion TCP/SSH directe sans émulateur tiers. Prend en charge Telnet, SSH et HPVT.TandemHLL— sessions hôtes Tandem/NonStop via THLLAPI (THLLW3.DLL/THLLW6.DLL, Attachmate Reflection 6530). UtiliseConnectionType.LowLevelet les mêmes champsEhll*queGenericLes données d'attribut de couleur ne sont pas prises en charge ;GetColorAtPositionrenvoie toujoursColor.LightGreen
CommunicationType: TELNET, SSH, HPVT
ConnectionType: Address, Profile, LowLevel
Address— Connexion par hôte/port. Obligatoire lors de l'utilisationProviderType.UiPathNew.Profile— Connectez-vous à l'aide d'un fichier de profil spécifique au fournisseur (chemin défini viaProfile).LowLevel— Connexion via EHLLAPI (fournisseur génératif) ou THLLAPI (fournisseur TenemHLL).
TerminalType: Terminal3270, Terminal5250, TerminalVT, TerminalHP, TerminalANSI, TerminalT653X, TerminalSCOANSI, TerminalWYSE, TerminalLinux
ControlKey (valeurs sélectionnées) : 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 (utiliser avec 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 (utiliser avec 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 (utiliser avec 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 (utiliser avec TerminalType.TerminalHP) : HP_2372A (0), HP_70092 (1), HP_70094 (2)
TerminalModesWyse (utiliser avec 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 (utiliser avec 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)
Modèles communs
Connectez-vous à un hôte 3270 et lisez un champ
[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);
}
Connexion SSH avec des identifiants sécurisés
[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);
}
Naviguer dans un menu par position de champ (EHLLAPI/ Fournisseur générique)
À utiliser lors de l’automatisation d’une session de terminal gérée par un émulateur tiers qui affiche une interface EHLLAPI (par exemple, une session IBM PC Puis ou BlueZone en cours d’exécution accessible via sa DLL EHLLAPI en cours d’exécution.
[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);
}
Attendez le traitement et lisez un champ de résultat (IBM Personal Communications/profil enregistré)
À utiliser lorsque la connexion est préconfigurée dans un fichier d’espace de travail IBM PCOMM (.ws). Le protocole PCAM doit être installé sur la machine robot.
[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}");
}
}
Détecter une couleur de champ pour une logique conditionnelle
[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();
}
}
Connectez-vous à un hôte Tandem/NonStop via THLLAPI
À utiliser lors de l’automatisation d’une session Tandem/NonStop exécutée via Attachmate Reflection 6530. Le point d'entrée EhllFunction pour THLLAPI est "thllapi" (par exemple "hllapi"). Les données d'attribut de couleur ne sont pas disponibles pour ce fournisseur.
[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);
}
- Namespaces importés automatiquement
- Vue d’ensemble du service
- Méthodes de connexion
TerminalConnection GetConnection(string connectionString)TerminalConnection GetConnection(ConnectionData connectionData)TerminalConnection GetSshConnection(ConnectionData connectionData, string sshUser, SecureString sshPassword)- ConnexionTerminaison
- Propriétés
- Events
- Méthodes de lecture d'écran
- Méthodes de champ
- Méthodes du curseur
- Méthodes d’envoi clés
- Méthodes d'attente
- Cycle de vie de connexion
- Avancé
- Classes d’options et de configuration
CommandOptionsConnectionDataTerminalFieldCursorPosition- Référence Énumération
- Modèles communs
- Connectez-vous à un hôte 3270 et lisez un champ
- Connexion SSH avec des identifiants sécurisés
- Naviguer dans un menu par position de champ (EHLLAPI/ Fournisseur générique)
- Attendez le traitement et lisez un champ de résultat (IBM Personal Communications/profil enregistré)
- Détecter une couleur de champ pour une logique conditionnelle
- Connectez-vous à un hôte Tandem/NonStop via THLLAPI