Partager via


Balise FindWindow dans Unified Service Desk

La balise <FindWindow> comprend une liste d’éléments enfants qui représentent une séquence d’opérations de correspondance, qui doivent toutes réussir pour que la fenêtre cible puisse être détectée.

L’extrait de code suivant montre comment les différents éléments <FindWindow> sont utilisés pour rechercher la fenêtre cible :

# RELAX NG XML grammar for FindWindow  
# https://relaxng.org/compact-tutorial-20030326.html  
#  
grammar {  
   start      = FindWindow  
   FindWindow = element FindWindow {  
element ControlId { attribute match { xsd:integer }?, text }*  
& element Caption { attribute match { xsd:integer }?, text }*  
& element CaptionStartsWith { same as Caption }*  
& element CaptionEndsWith { same as Caption }*  
& element CaptionContains { same as Caption }*  
& element Class { attribute match { xsd:integer }?, text }*  
& element ClassStartsWith { same as Class }*  
& element ClassEndsWith { same as Class }*  
& element ClassContains { same as Class }*  
& element Find { Caption & Class }*  
& element Desktop { empty }*  
& element Application { empty }*  
& element Owner { empty }*  
& element RelaxProcessIdRestriction { empty }*  
& element RelaxThreadIdRestriction  { empty }*  
}  
}  
  

Éléments de la balise <FindWindow>

Le tableau suivant décrit les différents éléments de la balise <FindWindow> :

Élément Description
ControlId Fenêtre avec ID.
Légende Texte de la légende de la fenêtre.
CaptionStartsWith La légende commence par du texte.
CaptionEndsWith La légende se termine par du texte.
CaptionContains La légende contient du texte.
Classe Fenêtre avec le nom de la classe.
ClassStartsWith Le nom de la classe commence par du texte.
ClassEndsWith Le nom de la classe se termine par du texte.
ClassContains La classe contient du texte.
Rechercher Recherche une fenêtre comme spécifié via l’élément Class ou Caption.
Bureau Définit le point de recherche sur le bureau.
Application Définit le point de recherche sur la fenêtre de niveau supérieur de l’application.
Propriétaire Fenêtre avec le propriétaire spécifié.
RelaxProcessIdRestriction Inclut les fenêtres avec différents ID de processus dans la recherche. Par défaut, toutes les fenêtres appartiennent au même ID de processus.
RelaxThreadIdRestriction Inclut les fenêtres avec différents ID de thread dans le processus de recherche. Par défaut, toutes les fenêtres appartiennent au même ID de thread.

Le code XML suivant affiche la définition de contrôle à l’aide de la balise <FindWindow>.

<FindWindow>  
<Desktop/>  
<Caption match="1">Font</Caption>  
<Class>#32770</Class>  
<Caption>OK</Caption>  
</FindWindow>  
<FindWindow>  
<Application/>  
<ControlId>7d</ControlId>  
</FindWindow>  
<FindWindow>  
<Desktop/>  
<Class>Notepad</Class>  
</FindWindow>  
  

Dans le précédent exemple XML, les éléments ont les définitions suivantes :

  • <Application/> : définit la fenêtre de contexte sur la fenêtre de niveau supérieur de l’application. Par défaut, le contexte est initialisé sur la fenêtre de niveau supérieur avant le premier nœud enfant dans <FindWindow/>.

  • <Desktop/> : définit la fenêtre de contexte sur la fenêtre de bureau de niveau racine.

  • <Caption match="1>Font<Caption> : recherche dans la hiérarchie des fenêtres, en commençant par la fenêtre de contexte actuelle et en descendant jusqu’en bas de la hiérarchie, la première fenêtre dont le texte de la légende correspond au texte fourni. Si match="2", il recherche la deuxième fenêtre dont le texte de la légende correspond au texte fourni. Si aucun attribut match n’est fourni, match="1" représente la valeur par défaut. La comparaison de texte est une correspondance de sous-chaîne avec le texte de la légende. Si le texte fourni apparaît sous la forme d’une sous-chaîne dans la légende de la fenêtre, il est considéré comme une correspondance. La fenêtre de correspondance réussie devient la nouvelle fenêtre de contexte. Si aucune correspondance n’est trouvée, la recherche échoue. Par défaut, seules les fenêtres qui appartiennent aux mêmes ProcessId et ThreadId sont considérées comme une correspondance.

  • <Class>#32770</Class> : recherche dans la hiérarchie des fenêtres, la première fenêtre dont le texte de la classe correspond au texte fourni. Toutes les autres informations comportementales sont identiques à <Caption/>.

  • <ControlId>7d</ControlId> : recherche dans la hiérarchie des fenêtres, la première fenêtre dont l’ID de contrôle correspond à la valeur fournie. Il doit s’agir d’une correspondance exacte. Toutes les autres informations comportementales sont identiques à <Caption/>.

    Le code XML suivant recherche la fenêtre contenant la légende OK dans la première fenêtre contenant la légende Font et l’ID de classe 32770, en commençant par le bureau.

<FindWindow>  
<Desktop/>  
<Caption match="1">Font</Caption>  
<Class>#32770</Class>  
<Caption>OK</Caption>  
</FindWindow>  
  

Le code XML suivant recherche la fenêtre dont l’ID de contrôle est 7D, en commençant par la fenêtre de niveau supérieur de l’application.

<FindWindow>  
<Application/>  
<ControlId>7d</ControlId>  
</FindWindow>  
  

Le code XML suivant recherche la (première) fenêtre dont le nom de classe est Notepad, en commençant par le bureau.

<FindWindow>  
<Desktop/>  
<Class>Notepad</Class>  
</FindWindow>  
  

Voir aussi

DDA Win
Utiliser des adaptateurs DDA