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 attributmatch
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êmesProcessId
etThreadId
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>