<< Retour au sommaire

 

La barre de titre d’une fenêtre

 

 

 

Table des matières

1.      D’abor un peu de vocabulaire ;

2.      2 scripts indispensables :

2.1  La fonction SayWindowPromptAndText ;

2.2  La fonction SayWindowTitle.

3.      Une approche plus technique :

3.1  La fonction GetAppTitle ;

3.2  La fonction GetWindowName.

 

D’abord un peu de vocabulaire

 

Comme ce manuel traite parfois de choses un peu techniques, il conviendra que vous preniez connaissances de quelques termes afin que le manuel ne soit pas alourdi par une « surcharge » de détails.

 

Le focus :

 

La Poignée :

 


2 scripts indispensables

 

SayWindowPromptAndText ()

 

Lorsque nous réalisons le raccourci clavier Insère +Tabulation, c’est le contrôle de la fenêtre ayant la prise de focus qui est lu.

En fait, c’est un script intégré qui est exécuté, il s’intitule :

« SayWindowPromptAndText() ».

Comme il s’agit d’un script et non pas d’une fonction, si vous avez besoin de déclencher la lecture du contrôle courant dans le code de l’un de vos scripts ou de vos fonctions, vous devrez passer par ‘l’appel d’exécution de script », donc placer le nom du script après le mot clé « PerformScript ».

Ça donne ceci :

PerformScript SayWindowPromptAndText()

 

SayWindowTitle ()

 

Quant à la barre de titre de la fenêtre, vous l’obtenez bien sûr par le biais du raccourci clavier Insère +T.

Ce script se nomme :

« « SayWindowTitle () ».

Pour utiliser ce script dans le code d’un script ou d’une fonction, c’est la même règle !

PerformScript SayWindowTitle ()

 

 


Une approche plus technique

 

GetWindowName

Ici, ce que l’on souhaite, c’est obtenir la barre de titre de la fenêtre qui est propriétaire du contrôle ayant la prise de focus.

Pour obtenir manuellement ces données, Insère Tabulation vous lit le contrôle qui a la prise de focus, et Insère +T vous lit la barre de titre de la fenêtre contenant ce contrôle.

Pour résumer la situation :

Par exemple, dans WORD, si vous enregistrez un document, une boîte de dialogue sera affichée à l’écran.

Le nom de la fenêtre réelle sera « Enregistrer sous »,

Le nom du contrôle qui a la prise de focus sera la zone d’édition intitulée « Nom du fichier ».

D’ailleurs, il ne faut pas confondre la fenêtre « réelle », et la fenêtre « principale » de l’application !

En effet, dans notre exemple, quelle que soit la fenêtre ouverte à l’écran, la fenêtre « principale » de l’application sera toujours :

« Document 1 Microsoft WORD ».

Sauf si bien sûr vous avez dores et déjà enregistré le document, dans quel cas « Document 1 » sera remplacé par le nom-même du document.

Quoi qu’il en soit, apprenez dès maintenant à faire la différence entre la fenêtre « réelle » et la fenêtre « principale » de l’application.

Tenez, pour votre info, voici une fonction :

GetAppTitle()

 

« GetAppTitle » est une fonction qui retourne une chaîne de caractères correspondant au nom de la fenêtre « principale » de l’application.

 Pour lire son contenu, il faut la passer en paramètre à la fonction « SayString » !

SayString (GetAppTitle ())

 

Eh bien, si vous écrivez cette ligne de code dans un script de WORD, vous constaterez que le résultat produit sera toujours le même, et ce, quelle que soit la boîte de dialogue dans laquelle vous vous trouverez.

En effet, dans WORD, à chaque fois que vous ouvrez une boîte de dialogue, vous changez de fenêtre « réelle », mais la fenêtre « principale » de l’application quant à elle reste toujours la même…

 

Mais ce qui nous intéresse ici, rappelez-vous, c’est l’obtention du nom de la fenêtre « réelle » !

Alors, je vous rappelle ce que je vous ai raconté au début de ce chapitre…

 

GetWindowName ()

 

« GetWindowName » est une fonction qui retourne une chaîne de caractères correspondant à la barre de titre de la fenêtre pour laquelle la poignée est passée en paramètre.

Ici, ce que l’on souhaite, c’est obtenir la barre de titre de la fenêtre qui est propriétaire du contrôle ayant la prise de focus, en clair, le nom de la fenêtre « réelle »…

 

GetWindowName () doit donc recevoir en paramètre la fonction qui retourne la poignée de la fenêtre « réelle ».

Cette fonction est GetRealWindow ().

Mais ça ne suffit pas, car la fonction « GetRealWindow » doit elle aussi recevoir un paramètre qui correspond cette fois à la poignée du contrôle qui a la prise de focus !

Eh oui, « GetRealWindow » a besoin de savoir pour quel contrôle nous désirons obtenir le nom de la fenêtre « réelle ».

Cette fonction est GetFocus ().

 

Donc, si on raisonne clairement !

Je veux obtenir le titre de la fenêtre correspondant à la fenêtre « réelle » dont la poignée est celle de la fenêtre « réelle » propriétaire de la poignée du contrôle qui a actuellement la prise de focus.

 

Oh la, c’est chaud !

Dire que d’habitude le français simplifie la lecture du code…

 

Eh bien avec le code du langage script, ça donne ceci :

 

GetWindowName (GetRealWindow (GetFocus ()))

 

Et bien sûr, comme si ça ne suffisait pas, il faut passer en paramètre tout cela à la fonction « SayString » afin que JAWS en fasse la lecture !

 

SayString (GetWindowName (GetRealWindow (GetFocus ())))

 

En français ?

Je veux que tu nous lise le titre de la fenêtre correspondant à la fenêtre « réelle » dont la poignée est celle de la fenêtre « réelle » propriétaire de la poignée du contrôle qui a actuellement la prise de focus.

 

Philippe BOULANGER